在API调用之后,没有触发setState . 第一个console.log语句按预期工作并显示所有正确的数据,但从不触发对setState的回调,并且不更新状态 . 我让它像这样坐了10多分钟 .

我没有控制台错误 .

奇怪的是,当我在应用程序的另一部分工作时,它神奇地开始再次工作,我不知道为什么 . 我错过了一些明显的东西吗

componentDidMount() {
    this.init()
}

init() {
    getDashboard()
        .then(function(data) {
          console.log(data)
            this.setState({
                dashboard: data.dashboard,
                learning: data.learning,
                items: data.items
            }, () => {console.log(this.state)})
        }.bind(this))
}

编辑:

有趣的是,如果我从 setState() 回调中删除第二个 console.log() 并在调用 setStat() 后简单地将其放置,它仍然没有被触发 .

console.log(this.state)
this.setState({
    dashboard: data.dashboard,
    learning: data.learning,
    items: data.items
})
console.log(this.state)