私は状態の私の理解で、おそらくReactの小道具を正しく取得していません。これはReact、Reduxベースのアプリを使用しています。リアクションライフサイクルイベント - 子コンポーネントは古い状態の小道具を継承します
シナリオ:
IはcomponentDidMount
メソッド内アプリからビューポートの寸法を取得するグローバルSVG
成分を有します。 state
でSVG
の
(アプリの初期化時に)デフォルトの小道具は、次のとおり
dimension : {
width : 0,
height : 0
}
componentDidMount
はDOM からwidth
& height
値を取得し、状態に値をディスパッチします。
今私は&高さの値が再びデフォルトビューボックス&更新に状態を計算するように更新SVG幅を必要とするSVG
コンポーネントの子コンポーネントを持っています。これは、実装時に(重要な点)の1度だけ実行する必要があるため、viewbox
の計算は子コンポーネントのcomponentDidMount
にあります。いただきましたハプニング
:
しかし、DOMを更新バッチに反応するので、私は推測する、子コンポーネントに渡された小道具はSVG
コンポーネントのcomponentDidMount
後にデフォルトの初期幅&高さの値ではなく、更新された状態です。
質問:
はどのように子コンポーネントのcomponentDidMount
に更新された状態を渡すことができます。注:私は意味しますcomponentDidUpdate
、コンポーネントが更新されるたびに使用することはできません
- 、それが過剰に乗っユーザーの位置を、それによって、デフォルト値は再びビューを更新&計算します。
* componentDidMount()*で状態を設定すると、コンポーネントが再描画されます。親コンポーネントからの小道具を使用する場合は、* componentWillReceiveProps(nextProps)*で作業する必要があります。これは、親コンポーネントから小道具を受け取るたびに呼び出されます。 –
コードを表示できますか? –
@MarioSantiniありがとうございました。私はそのライフサイクルイベントを完全に忘れていました:!それを回答として投稿したい場合は、それを最初のものとして受け入れます。 – Kayote