理由がありますか?setState
は再レンダリングするために実行されませんか?私はconsole.log
コールバックを使用して、状態が変更されたかどうかを検出しましたが、役に立たないことはありません。ReactJS setStateがチェックボックスの最初のトグルで動作しない
ここに私が使用しているコードがあります。関数呼び出しの状態はbool
ですが、関数の基本はここにあります。
export class ExampleClass extends React.Component {
constructor(props) {
super(props);
this.state = {
usingToggleOne: false
};
}
}
toggleforToggleOne(event) {
this.setState({
usingToggleOne: !this.state.usingToggleOne,
});
}
render() {
return(
<input type="checkbox"
onChange={this.toggleforToggleOne.bind(this)} />
}
最初にチェックボックスをオンにしてもチェックが入りますが、状態は変更されませんが、正常に動作した後に表示されます。理由は何ですか?私はObject.assign
を使って最初のチックを得るのに運が良かったのですが、それは状態を突然変異させているからです。
興味深い!だから私はレンダリングでそれを呼び出し、正しい状態を返していますが、レンダリング前の状態を 'componentWillUpdate'で呼び出していますが、正しくない状態になっています。 – kermitvomit
よく目撃された!私はこれを説明するために私の答えにさらなる情報を加えました。 –
オハイオ州それはなぜ問題があるのかについてより多くの意味がある。 これをさらに調べてみると、 'LinkedStateMixin'が解決策であるようです。ありがとう:) 編集:それはすでに廃止されているようだ、私は双方向バインディングを推測する? – kermitvomit