我々は、window.onresize
とwindow.onscroll
に、コンポーネント階層の異なる部分におけるDOM要素に関連するいくつかのアクションを実行する必要がありますReact.js - コンポーネントの階層の異なるレベルから使用DOM要素を
1)にリサイズする際の要素を移動しますモバイル解像度
2)スクロール時にクラスとスタイルを変更する。
問題は、要素がReactコンポーネント階層の異なるレベルにある、つまり異なるコンポーネントにネストされているということです。したがって、私が正しく理解すれば、refs
を使用してDOMノードにアクセスすることはできません。
は私が持っている: {someCondition ? <FirstComponent/>: <SecondComponent/>}
someCondition
のに対しては、原因ユーザーのUIアクションのいずれかに変更することができ、またはそれは、ページのロードの最初から真である可能性があります。
私は私のFirstComponent
にcomponentDidMount
とcomponentDidUpdate
を使用してみましたが、componentDidMount
のみ火災someCondition
場合は最初から真実であることを発見した、とcomponentDidUpdate
は確かに(コンポーネントに含まれている)ときsomeCondition
変化したが、その後、必要なDOM要素を発射しますその時点では準備ができておらず、document.getElementById
は失敗します。
追加すると、window.requestAnimationFrame
が役に立たなかった
私はReactでこれを行うための強固な方法があると思いますか?
React.findDomNode
?
ありがとうございます。
一般document.getElementById'は( 'React.findDOMNode'は通常、これを行う方法である'使用していますが、あなたが拡大することはできますか? 'ref'sを使用することができないについて何かを言及すべきではありませんそれ?) –