Dropdown onchange не работает: React + Typescript + semantic-ui-реакции - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь вызвать раскрывающийся список, используя semantic-ui-реагировать с машинописью.Проблема, с которой я столкнулся, заключается в том, что я не могу прикрепить к ней обработчики изменений.Выдает следующую ошибку «Тип« 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}
      />
  )
}

1 Ответ

1 голос
/ 21 мая 2019

Это происходит потому, что библиотека не использует ChangeEvent использует SyntheticEvent

Типы для функции onChange для элемента Dropdown:

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}) =>{
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...