reactjs - 下拉 onchange 不起作用 : React+ Typescript+ semantic-ui-react

标签 reactjs typescript semantic-ui-react

我正在尝试使用 semantic-ui-react 和 typescript 来调出一个下拉菜单。我面临的问题是,我无法将更改处理程序附加到它。它抛出以下错误“类型‘SyntheticEvent’不可分配给类型‘ChangeEvent’”

//Importing Dropdown
import Dropdown from 'semantic-ui-react/dist/commonjs/modules/Dropdown';

//options array
const options = [
  { key: 1, text: 'Location 1', value: 1 },
  { key: 2, text: 'Location 2', value: 2 },
  { key: 3, text: 'Location 3', value: 3 },
]

//state object
this.state ={
  value : ''
}

//Dropwdown change event
dropdownChange = (event: React.ChangeEvent<HTMLSelectElement> ,{value}) =>{
   this.setState({ value });
}

//Rendering Drop down
render()
{
  return(
      <Dropdown  
        options={opitons}
        name="value"  
        value={this.state.value}
        onChange={this.dropdownChange}
      />
  )
}

最佳答案

发生这种情况是因为库没有使用 ChangeEvent 而是使用 SyntheticEvent

Dropdown 元素上的 onChange 函数的类型是:

onChange?: (event: React.SyntheticEvent<HTMLElement>, data: DropdownProps) => void

你可以在这里看到它们 https://github.com/Semantic-Org/Semantic-UI-React/blob/master/src/modules/Dropdown/Dropdown.d.ts#L143

所以你应该改变这一行:

dropdownChange = (event: React.ChangeEvent<HTMLSelectElement> ,{value}) =>{

到:

dropdownChange = (event: React.SyntheticEvent<HTMLElement> ,{value}) =>{

关于reactjs - 下拉 onchange 不起作用 : React+ Typescript+ semantic-ui-react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56237677/

相关文章:

reactjs - combineReducers 破坏了 Redux 状态,也破坏了多个 ImmutableJs reducer

reactjs - Animate.spring 完成后调用函数

typescript - 使用道场/文本!从 Typescript 类中

javascript - Firestore云功能评论计数器: How to fix "Object is possibly undefined"?

javascript - 正确修改React.js中的状态数组

reactjs - 在 Gatsby 中根据屏幕尺寸切换布局

angularjs - IntelliJ 和 Angular 2 参数类型不可分配错误

javascript - 如何返回不在 Sidebar 组件内打开侧边栏的 ReactJS 子级

javascript - 当焦点位于输入字段时,为什么 React 中的日期选择器会闪烁?

reactjs - 尝试使用 Form.Select 和 Semantic-UI-React 从名称的下拉选择中获取 id 值?