javascript - 初学React,setState后获取到的this.state没变,还是初始state?
本文介绍了javascript - 初学React,setState后获取到的this.state没变,还是初始state?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
getInitialState(){
return {data:[]};
},
componentDidMount(){
var data = [ { author: "Pete Hunt", text: "This is one comment" },
{ author: "Jordan Walke", text: "This is *another* comment" } ];
(function(data){
this.setState({data:data});
console.log(this.state.data);
}).call(this,data);
},
为什么log里打出来的data是[]
呢?
解决方案
善用官方文档:
void setState(
function|object nextState,
[function callback]
)
The second (optional) parameter is a callback function that will be executed once setState is completed and the component is re-rendered.
所以正确做法是
this.setState(
Object.assign({}, { data }),
() => console.log(this.state)
)
这篇关于javascript - 初学React,setState后获取到的this.state没变,还是初始state?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文