我需要在reactjs“ sync”中设置状态。我这样做的方法是使用回调:
myFunction(){
var arr = [];
for(var i = 0 ; i > 100; i++){
arr[i] = i;
}
this.setState({
someValue: 999
}, () => {
//this.arr return undefined
return this.arr;
});
}
我几乎可以确定这是一个范围界定问题。我以为它具有箭头功能应该可以工作吗?我尝试使用“ this”而不使用“ this”,但是它是未定义的。
答案 0 :(得分:0)
您是对的,这是范围界定。此内部箭头函数不引用函数的arr
如果您真的想使用匿名功能,则可以这样做
myFunction(){
var arr = [];
for(var i = 0 ; i > 100; i++){
arr[i] = i;
}
var xyz = function() {
//this.arr return undefined
return this.arr;
};
this.setState({
someValue: 999
}, xyz);
}
这是一篇很好的箭头功能文章。 https://medium.com/tfogo/advantages-and-pitfalls-of-arrow-functions-a16f0835799e
答案 1 :(得分:-1)
请勿使用var定义变量(您可以阅读有关使用var进行作用域定义并让其使用的信息
在情况为var i = 0的情况下使用let