Состояние не обновляется в ReactJs - PullRequest
1 голос
/ 01 марта 2020

Я пытаюсь обновить состояние при запуске, ошибка не отображается, и вывод console.log показывает, что состояние не обновлено. Может кто-нибудь помочь выяснить, что не так?

Вот функция, которая должна обновлять состояние.

  addDay(newDay) {
    console.log(this.state.allSkiDays);
    this.setState({
      allSkiDays: [...this.state.allSkiDays, newDay]
    });
    console.log(this.state.allSkiDays);
  },

где я объявил начальное состояние


export const App = createReactClass({
  getInitialState() {
    return {
      allSkiDays: [
        {
          resort: "Skaq Valley",
          date: "1 / 2 / 2020",
          powder: true,
          backcountry: false
        }
      ]
    };

    this.addDay = this.addDay.bind(this);
  },

1 Ответ

0 голосов
/ 02 марта 2020

setState isyn c, и когда вы регистрируете свое состояние после установки, реакция запускает ваш журнал до установленного состояния. Вы можете запустить set state syn c, как показано ниже:

 addDay(newDay) {
     console.log(this.state.allSkiDays);
     this.setState({
          allSkiDays: [...this.state.allSkiDays, newDay]
      }, ()=>{
          console.log(this.state.allSkiDays)
      });
 }

Теперь вы можете видеть обновленное состояние в консоли, потому что ваш seState запускает syn c.

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