在this.setState
中调用http://jsfiddle.net/69z2wepo/3535/ componentWillMount
并使用回调this.loadData
调用this.loadData
{{1}}。但函数{{1}}永远不会被称为回调。
答案 0 :(得分:2)
我不知道内部是如何工作的,但是查看setState()
的文档......
...您可以提供一个可选的回调函数,该函数在
setState
完成后执行并重新呈现该组件。
...以及componentWillMount()
的文档......
如果您在此方法中调用
setState
,render()
将会看到更新后的状态,并且只会在状态发生变化时执行一次。
...我认为这与setState()
中调用render()
并不排队重新渲染这一事实有关。
鉴于此,对loadData
进行初始调用的最合适位置是componentDidMount()
,它会在初始渲染后立即触发:
componentWillMount() {
// ...
this.setState({loaded, data});
},
componentDidMount() {
this.loadData();
},