невозможно установить состояние после получения запроса - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь изменить свое состояние с помощью следующих данных после запроса на выборку, но состояние никогда не меняется после установленного состояния enter image description here

profileinfo:
  {
    Firstname:'Jeff ',
    Lastname:'Series',
    email:'exam.com',
    Address:'502B Inner Circle Riverwalk'
  }

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

Ответы [ 2 ]

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

Я думаю, что это синтаксис. Вам нужно закрыть скобку на .then(response=>response.json()

componentDidMount() {
  fetch("http://localhost:3001/login")
  .then(response=>response.json()) // <-Insert a close bracket here
  .then(data=> this.setState({profileinfo:data[0].firstname}, () => console.log(this.state.profileinfo)) // <- Call console in callback
  ) // <- Remove one here
    console.log(this.state.profileinfo)
} 

И вызовите console в функции обратного вызова, чтобы получить правильное значение. Потому что setState является асинхронной функцией.

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

Вы пытались использовать функцию обратного вызова установленного состояния? возможно, что ваше состояние еще не было обновлено при ударе console.log.

может быть попробовать

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