@kamelot43

Как корректно изменить состояние React-компонента?

В состоянии компонента хранятся данные. Структура у них разная. Как в одном вызове setState можно обновить разные данные: объект и строку? В текущей реализации (просто пример) нужно дважды обновить состояние, чтобы внести данные. Можно проделать все за один вызов setState?

this.setState(prevState => {
      let current = Object.assign({}, prevState.current);
      current.params.from = curFrom;
      current.params.to = curTo;
     
      return { current };
    });

 this.setState({
    datePickerValueFrom: curFrom,
    datePickerValueTo: curTo,
});
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
nowm
@nowm
Можно так:

const current = Object.assign({}, this.state.current);
current.params.from = curFrom;
current.params.to = curTo;

this.setState({
    datePickerValueFrom: curFrom,
    datePickerValueTo: curTo,
    current,
});


Или так:

this.setState(prevState => {
    const current = Object.assign({}, prevState.current);
    current.params.from = curFrom;
    current.params.to = curTo;

    return {
        current,
        datePickerValueFrom: curFrom,
        datePickerValueTo: curTo,
    };
});


Или я как-то неправильно вопрос понял? Логично ведь, что если нужно вызывать один раз, то нужно просто вызывать один раз, а не два.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы