私は自分のコードに次き:ReactのsetState内でコールバックがブロックされているのはなぜですか?
this.setState({newState}, function(){ this.focus });
しかし、私は他のコールバック、そのブロックのすべてを含む場合。これは、setState内に関数コールバックを持つ正しい方法ですか?
私は自分のコードに次き:ReactのsetState内でコールバックがブロックされているのはなぜですか?
this.setState({newState}, function(){ this.focus });
しかし、私は他のコールバック、そのブロックのすべてを含む場合。これは、setState内に関数コールバックを持つ正しい方法ですか?
はどうやら、状態を有するオブジェクトとして渡され、対明示的に状態変数を定義すると、このブロッキングを引き起こしているものです。
間違っ:
let newState = {
var1: true,
var2: false
};
this.setState({newState}, function(){ this.focus });
右:
this.setState({var1: true, var2: false}, function(){ this.focus });
右ので、 '{NewStateには}' '{NewStateに:NewStateに}の省略形である新しいES6機能である'を。 'this.setState(newState、function(){this.focus});' newState'が中括弧で囲まれていないことに注意してください。 – djskinner
任意の更なるコンテキストなしで私はthis
は未定義であり、エラーが飲み込ま取得されることをお勧め。これを試してください:
this.setState(newState,() => this.focus());
これは、それに直面してsetStateの後に何かをする正しい方法です。あなたはあなたが見ている問題について詳しく説明できますか?関数のコンテキストが適切に束縛されていない可能性があるので、 'this'はあなたの例では未定義です。非常に奇妙な – djskinner
が、私は問題が何であるかを考え出した.. – reectrix