установка состояния после вызова API в реакции - PullRequest
0 голосов
/ 19 марта 2019

Я пробовал множество способов установить состояние, но по какой-то причине состояние никогда не обновляется. Это данные JSON, которые я хочу, чтобы мое состояние изменилось на

export class Provider extends Component {
  state = {
    posts: [],
    profileinfo: {},
    dispatch: action => this.setState(state => reducer(state, action))
  };

  componentDidMount() {
    fetch("http://localhost:3001/login").then(response =>
      response
        .json()
        .then(data => this.setState({ profileinfo: data.firstname }))
    );
    console.log(this.state.profileinfo);
  }

  render() {
    // ...
  }
}

1 Ответ

0 голосов
/ 19 марта 2019

setState является асинхронным. Ваш консольный журнал, вероятно, срабатывает до того, как состояние обновится. Если вы хотите увидеть результат после вызова setState, сделайте это следующим образом:

data => this.setState({ profileinfo: data.firstname }, () => {
  console.log(this.state);
});
...