【发布时间】:2017-10-11 04:00:39
【问题描述】:
我真的很抱歉我发布了这个,因为它听起来很疯狂。 我有一种方法可以验证我在模态框内的表单中的一些输入。
所以我检查每个 this.state.variable 并推送到一个辅助数组,然后将其设置为原始 fieldErrors 数组。
但由于某种原因,当我在设置之前检查aux 时,长度为5。
设置为 fieldErrors 后,我注意到长度为 0。这是怎么回事?
代码如下:
_validateMissingFields: function() {
var aux = [];
if (this.state.variable1.length === 0) {
aux.push('variable1');
}
if (this.state.variable2.length === 0) {
aux.push('variable2');
}
if (this.state.variable3.length === 0) {
aux.push('variable3');
}
if (this.state.variable4.length === 0) {
aux.push('variable4');
}
if (this.state.variable5.length === 0) {
aux.push('variable5');
}
console.log(aux.length) // -> shows 5
this.setState({ fieldErrors: aux });
}
稍后,当我在此方法之后执行this.state.fieldErrors.length 时,显示为0。
顺便说一句,这就是我初始化fieldErrors的方式:
getInitialState: function() {
return {
variable1: '',
variable2: '',
variable3: '',
variable4: '',
variable5: '',
fieldErrors: []
}
},
【问题讨论】:
-
查看此问题以获取更多信息stackoverflow.com/questions/30782948/…
-
Omg @jontro,不知道它是 async :S 有点难看,我认为它会像在任何其他框架中一样即时设置。谢谢!把它作为答案,我会打勾。
-
这个框架充满了令人讨厌的异步东西:'(很多承诺和东西同时发生哈哈..快把我逼疯了!
-
;) 是的,需要一段时间才能习惯。尽管在同一通道中设置状态后,我并不经常需要读取状态
标签: javascript arrays reactjs react-native