Написать объект в состояние - PullRequest
0 голосов
/ 14 января 2020

Необходимо нажать на регистр, чтобы перевести объект с заполненными полями в состояние dataChanged

https://codesandbox.io/s/validation-devextreme-form-fso31

Проблема в onFieldDataChanged свойство при установке состояния dataChanged. Ошибка:

Превышена максимальная глубина обновления. Это может произойти, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate. React ограничивает количество вложенных обновлений для предотвращения бесконечных циклов

<Form
            formData={customer}
            readOnly={false}
            showColonAfterLabel={true}
            showValidationSummary={true}
            validationGroup="customerData"
            onFieldDataChanged={e => {
              let newData = e.component.option("formData");
              this.setState({
                dataChanged: newData
              });
            }}
>

1 Ответ

0 голосов
/ 14 января 2020

Вместо вызова setState в функции стрелки в качестве реквизита, создайте такую ​​функцию:

onFieldChangeHandler = (e) => {
    const newData = e.component.option("formData");
    this.setState({
        dataChanged: newData
    });
}

И в реквизитах Form компонента:

onFieldDataChanged={this.onFieldChangeHandler}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...