javascript - 在 Typescript 中选择 Material UI

标签 javascript reactjs typescript react-native material-ui

我使用 Material UI 选择创建了一个下拉菜单。它说“搜索依据”。当我们点击它时,它会给我们一个列表。当我选择其中一个选项时,我想存储该选项并将“搜索依据”更改为所选选项。

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>
      </div>
    )
    </div>
  );
}

目前,onChange 给我这个值错误:

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={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'.

最佳答案

在使用未知类型的值之前,您必须对其进行断言。如果您确定 onChange 事件中的值始终是字符串,那么您可以执行 onChange={event => setCriteria(event.target.value as string)} 并且编译器不应该再提示。

关于javascript - 在 Typescript 中选择 Material UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60532125/

相关文章:

angular - cordova-plugin-geolocation watchPosition() 方法不起作用

angular - 如果Angular 2中没有数据字段,如何不出错

javascript - 表达-Angular2错误: ENOENT: no such file or directory upon refresh

javascript - Trello 不会使用 Google App Script 在列表之间移动卡片

javascript - 如何在 JQuery 中的同一 <tr> 内从另一个 <td> 引用一个 <td>?

javascript - 如何在 reactJS 中映射字典?

javascript - 为什么当 redux 状态改变时 props.screenProps 会变成 undefined

javascript - c :foreach tag is not working for Google map in javascript jsp

javascript - 使用 enzyme 测试对 React 组件状态的更改并监视实例方法

typescript - Angular2 Forms 中的 TypeScript 编译问题