Реагирующие крючки: OnValueChanged выполняются дважды

#reactjs #react-hooks

#reactjs #реагирующие крючки

Вопрос:

у меня следующая проблема с реактивными хуками:

В onValueChanged SelectBox :

 <Item
  dataField="student"
  editorType="dxSelectBox"
  editorOptions={{
    items: students,
    displayExpr: "name",
    valueExpr:"id", onValueChanged:onChange}}
></Item>
 

Я вызываю этот метод:

 const onChange = (event) => {
  console.log("value>>>",event.value)
  setValue(event.value)
}
 

Я объявляю состояние как:

 const [value, setValue] = useState(0)
 

Проблема в том, что onChange метод вызывается один раз, когда изменяется выбор поля выбора. Но при выполнении setValue , по какой-то причине onChange метод вызывается снова и сохраненное значение теряется, также event.value не имеет значения:

он показывает следующее

я был бы очень признателен, если бы вы могли мне помочь.

Комментарии:

1. Это интересно. Возможно, вы могли бы настроить пример для воспроизведения, например, codesandbox? Это помогло бы в отладке.

2. У React нет SelectBox .

3. Можете ли вы включить больше кода, например Item , компонент и содержащий компонент, и где объявлен метод onChange?

4. Я использую библиотеку devextreme: js.devexpress.com/Demos/WidgetsGallery/Demo/Form/CustomizeItem /…