multiple
옵션 세트 를 사용하여 Typeahead에서 사용자 지정 입력 구성 요소를 사용하려고합니다 . 문서에서 "참조 처리"를 올바르게 수행한다고 말했지만 이것이 어떻게 수행되는지에 대한 예는 없습니다. 무엇을 전달해야할지 모르겠습니다 referenceElementRef
. 지금까지 시도한 모든 것은 입력 할 때 옵션을 렌더링하지 않습니다. DOM에서 볼 수 있지만의 opacity
는 .rbt-menu
0으로 설정되어 있으므로 기본적으로 숨겨져 있습니다.
지금까지 내 코드는 다음과 같습니다.
const divRef = React.useRef(null);
return (
<Col>
<div ref={divRef}>
<span className="uppercase">
<FormattedMessage id="d.customer" defaultMessage="Customer" tagName="h4" />
</span>
<AsyncTypeahead
multiple
id="customer-filter-input"
inputProps={{
'aria-label': 'Customer search',
style: { fontSize: '14px' },
}}
key={'customer-input'}
minLength={4}
isLoading={props.isLoadingcustomersSuggestions}
delay={300}
onSearch={(term: string) => handleFilterInputs(term, 'customers')}
size={'lg'}
options={dataSource}
labelKey={'defaultMessage'}
placeholder={intl.formatMessage({
id: 'companyName',
defaultMessage: 'Company name',
})}
onChange={(filterItem: any) => handleAutocompleteUpdate(filterItem, 'customer')}
renderInput={({ inputRef, referenceElementRef, ...inputProps }: any) => (
<Input
{...inputProps}
style={{ position: 'relative' }}
ref={(input: any) => {
inputRef(input);
referenceElementRef(divRef); // What do I put here?
}}
/>
)}
/>
</div>
</Col>
);
그리고 이것은 Typeahead에 입력하고 결과를 얻은 후에 DOM에서 렌더링되는 것입니다.
다중 및 renderInput을 함께 사용하는 Typeahead의 아이디어 또는 작업 예제가 있습니까?
편집 : 여기에 내가보고있는 코드와 상자가 있습니다. 나는 또한 multiple
설정되지 않은 경우에도 문제가 발생한다는 것을 알 수 있습니다 . .NET을 사용하는 데 문제가있는 것 같습니다 renderInput
. 나도 사용해야 renderMenu
합니까?
https://codesandbox.io/s/react-bootstrap-typeahead-async-pagination-example-forked-3kz3z
샌드 박스의 자동 완성 버전을 최신 버전 (v5.1.1)으로 업그레이드하고 input
요소를에 전달하면 referenceElementRef
작동합니다 (메뉴를 표시하려면 입력에 일부 문자를 입력해야합니다).
// v5.0 or later
renderInput={({ inputRef, referenceElementRef, ...inputProps }) => (
<Input
{...inputProps}
ref={(input) => {
inputRef(input);
referenceElementRef(input);
}}
/>
)}
메뉴는에 referenceElementRef
의해 노드 와 관련하여 렌더링 됩니다 react-popper
. 대부분의 경우 참조 노드는 입력 자체가됩니다. an inputRef
과 a referenceElementRef
가 모두있는 이유 는 입력 주변의 컨테이너 요소와 관련하여 메뉴를 렌더링해야하는 더 복잡한 경우 (다중 선택과 같은) 때문입니다.
구성 요소의 v4를 사용하는 경우 접근 방식은 비슷하지만 사용할 참조는 다음과 같이 간단하게 호출됩니다 ref
.
// v4
renderInput={({ inputRef, ref, ...inputProps }) => (
<Input
{...inputProps}
ref={(input) => {
inputRef(input);
ref(input);
}}
/>
)}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다