私が開発したReact/Reduxアプリケーションはiframe内に存在する必要があります。周囲のドキュメントには、内部からメッセージを送信してiframeのサイズを変更するように指示することができます。 DOMが変更されるたびにサイズ変更メッセージを送信したいと思います。React/Reduxアプリケーションの(再)レンダリング後にイベントをトリガーする方法
一般的なMutationObserverを使用すると、DOMが更新されてからiframeのサイズが変更されるまでにちらつきが発生します。アプリケーションは
render(
<Provider store={store}>
...
</Provider>,
document.querySelector("..."),
resizeIframe
);
を使用して設定されて
resizeIframe
コールバック関数は、最初のレンダリングを解決するが、子コンポーネントのアップデートには役立ちません。
resizeIframe
をどのように反応(再)レンダリングにトリガーできますか?
編集:私はすべてのレンダリングでサイズ変更が非効率的であることを知っています。しかし、DOMのサイズ変更とiframeのサイズ変更の間の遅延を取り除くことは、より大きな問題であるようです。
は私が使用してコンポーネントを反応させるのひとつひとつにこれを実装する必要があります:その便利
listenTo
方法で遊んでhttps://github.com/wnr/element-resize-detectorスタート:良いアイデアは、まさにこれを行うライブラリを使用するだろうか?私はむしろそうしないだろう。 (また、サードパーティ製コンポーネントですか?) – jcassee
'componentWillReceiveProps(){anyfunction()}'内の関数を使用できます –
2つの質問:1)これを実装するコンポーネントはどれですか? componentWillReceivePropsを実装する1つのコンポーネントにアプリケーション全体をラップする必要がありますか? 2)レンダリング前にcomponentWillReceivePropsが発生するので、componentDidUpdateはサイズ変更する正しいフェーズではありませんか? – jcassee