В моем раскрывающемся меню (Выбор пользовательского интерфейса материала) написано «Поиск по», а затем мы нажимаем на него, и отображается список. Когда я выбираю одну из опций, я хочу сохранить опцию и изменить «Поиск по» на выбранную опцию.
export default function UserSearchPage(){
const [criteria, setCriteria] = useState('');
const [searchItem, setSearchItem] = useState('');
return (
<div>
<div className='main-content'>
<Select
value = {criteria}
onChange={value => {
setCriteria(value);}}
displayEmpty>
<MenuItem disabled value="">
<em>Search By</em>
</MenuItem>
<MenuItem value={1}>First Name</MenuItem>
<MenuItem value={2}>Last Name</MenuItem>
<MenuItem value={3}>Phone Number</MenuItem>
<MenuItem value={4}>Email</MenuItem>
</Select>
<br></br><br></br>
<SearchBar
value= {searchItem}
onChange={value => {
setSearchItem(value);}}
onRequestSearch={() => console.log('onRequestSearch')}
style={{
margin: '0 auto',
maxWidth: 800
}}
/>
</div>
)
</div>
);
}
С моим текущим onChange в Select, я получаю эту ошибку по значению:
Argument of type 'ChangeEvent<{ name?: string | undefined; value: unknown; }>' is not assignable to parameter of type 'SetStateAction<string>'.
Type 'ChangeEvent<{ name?: string | undefined; value: unknown; }>' is not assignable to type '(prevState: string) => string'.
Если я использую это onChange:
onChange={event => setCriteria(event.target.value)}
Я получаю сообщение об ошибке:
Argument of type 'unknown' is not assignable to parameter of type 'SetStateAction<string>'.
Type 'unknown' is not assignable to type '(prevState: string) => string'.
Я попытался создать песочницу, но понятия не имею, как устранить ошибку. Код выглядит нормально, но не компилируется: https://codesandbox.io/s/sleepy-buck-5t7bq