componentWillUpdate
が呼び出されたとき、私は最新の状態、すなわちthis.state
の状態を読み取ることができたと思いました。しかし、私は文書をより詳細にチェックした後、私が間違っていることに気付きました。事実は、this.state
の後にcomponentWillUpdate
が呼び出されたとしても、それは依然として「古い」状態を読み取ります。このデザインのポイントは何ですか? componentWillUpdate
はどのようにして便利ですか? this.setState
への呼び出しが何をするかでレンダリングする直前に呼び出され、:componentWillUpdate古い状態を読み取る
答えて
componentWillUpdate
が反応ライフサイクルメソッド(https://facebook.github.io/react/docs/component-specs.html#lifecycle-methodsをここで参照)です。それは古い状態があなたにまだ利用可能である理由であり、あなたがこのサイトの範囲を超えていることは、imho(アクションを記録するAPI呼び出しを以前の状態またはすべての種類のもの)。
実際にcomponentWillUpdate
は渡されたオブジェクトとしてnextStateを受け取るため、必要に応じてそこにアクセスできるようになります。
レンダリング後に状態を取得する場合は、componentDidUpdate
を調べて、古い状態にする必要があります。
私が驚いているのは、最新の状態をレンダリングしている間にcomponentWillUpdateが古い状態を読み取ったことです。これはcomponentWillUpdateがユーザーの状態に触れることを期待していないようです。もしそうなら、私はこのライフサイクルメソッドがどのように役立つか分かりません(私はあなたの例を理解できません) – Guigui
ありがとう! 'nextProps'と' nextState'は実際には 'componentWillUpdate'で利用可能です。 – Guigui
新しい状態が設定される前にComponentWillUpdateが呼び出されている、それが目的です。私は、あなたが "componentWillUpdateはユーザーが状態に触れることを期待していません"という意味を混同しています。状態/小道具が変更された場合にのみ呼び出されます。レンダリングがすべてである前に呼び出されたばかりです。 –
- 1. カスタムユーザーコントロールの状態を読み取る
- 2. リアクションセット状態が古い状態を取り除く
- 3. redux古い状態を接続する
- 4. 古い状態と新しい状態の違い
- 5. マニフェストでプログラムでデバッグ状態を読み取る
- 6. アクタのアクタがデータベースから状態を読み取る
- 7. リモートXBee I/Oピンの状態を読み取る
- 8. 受信トレイのメッセージの状態を読み取る
- 9. RadioButtonの状態を読み取る方法
- 10. Swift/MacOSでキーボードの状態を読み取る方法は?
- 11. 別のコンポーネントからコンポーネントの状態を読み取る
- 12. linq to xml - 休止状態のファイルを読み取る
- 13. JavaからWin32アプリケーションの状態を読み取る
- 14. Extjsコンボボックス先読み、状態名と状態コード
- 15. ノード赤色のModbus TCPの状態変更の読み取り
- 16. ポインタからの読み取り中のOpenMP競合状態
- 17. MVC 3のコントローラで、チェックボックスのチェック状態/チェック解除状態をコントローラのビューから読み取る方法
- 18. リアクションスピナーアニメーションの読み込み/状態のないビュー
- 19. 状態を変更するときの状態の再読み込みを防止する
- 20. 異なるビューからのモデルの読み込み(セッション状態?)
- 21. インスタンス状態を読み書きしないマーキングメソッド
- 22. 同じチェインコードに書き込んだ直後の状態を読み取る
- 23. 反応状態のプロパティを読み取ることができません
- 24. Traefikからヘルスチェック状態を読み取ることはできますか?
- 25. スレッドセーフな状態でベクトルの最後のXエントリを読み取る方法は?
- 26. メソッドが状態を読み取ることができません
- 27. は未定義の状態を読み取ることができません
- 28. 個々のチェックボックスのキャプションごとにチェックボックスリストの状態を読み取る
- 29. GCDから古い値を読み取るスレッド
- 30. OfficeJSで古い.docファイルを読み取る
@ user120242驚いたことに、 'componentWillUpdate'は古い状態を読み込みますが、' render'は最新の状態を読み込みます。それは 'componentWillUpdate'のように見えます。 – Guigui
は更新されます。それは秒で更新されます。その時点での現在の状態は、(実際にはまだ更新されていないため)以前の状態になります。次の状態を受け入れることができます。その状態は、関数内のパラメータとして遷移し、遷移先を確認することができます。レンダリングでは更新され、レンダリングによって新しいデータが表示されます。 –