本当に申し訳ありませんが、狂ったように私はこれを投稿しています。 私は、モーダル内のフォームにあるいくつかの入力を検証する方法を得ました。配列の状態を反応ネイティブでは機能しませんか?
したがって、私はthis.state.variableをチェックし、元のfieldErrors配列に設定されるようにaux配列にプッシュします。
しかし、いくつかの理由で、私は設定する前にaux
をチェックしたときに、長さがfieldErrorsに設定した後5 であるため、私は、長さは何が起こっている0です気づきますか?ここで
this.state.fieldErrors.length
を行う際に、後で
_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 });
}
ちなみに0
を示し、これは私がfieldErrors
を初期化しています方法です:
getInitialState: function() {
return {
variable1: '',
variable2: '',
variable3: '',
variable4: '',
variable5: '',
fieldErrors: []
}
},
可能な重複http://stackoverflow.com/questions/36085726/setstate-in-reactjs-is-asyncような何かを行うことができます - または - 同期) – jontro
詳細については、この質問を参照してくださいhttp://stackoverflow.com/questions/30782948/why-calling-react-setstate-method-doesnt-mut ate-the-state-immediately – jontro
Omg @jontroは、それが非同期であることを知らなかった:Sそれはちょっと醜いです、私はそれが他のフレームワークのようにインスタントセットになると思いました。ありがとう!答えとして入れて、私はそれに目を向けるでしょう。 – msqar