問題タブ [rerender]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2114 参照

reactjs - React JSX:親コンポーネントの再レンダリングが子コンポーネントを再マウントするのは正常ですか?

React アプリのルート コンポーネントには、次のようなものがあります。

App コンポーネントが setState または forceUpdate() を介して再レンダリングされると、子コンポーネントが実際に再マウントされることに気付きました (つまり、componentWillUnmount、componentWillMount、componentDidMount が更新ごとに呼び出されます)。私が期待する動作は、Child コンポーネントの render 関数だけが再度呼び出されることです。最近、React-router 4.x にアップグレードしたので、これに関連しているかどうかはわかりません。

これが仕様によるものかどうか誰かに教えてもらえますか? componentDidMount を複数回呼び出すと、データをフェッチしようとすると問題が発生します。サイズ変更中に、その高価な操作を何度も実行したくありません。

アップデート:

この問題の考えられる原因を見つけました。複数のネストされたコンポーネントがあり、プロジェクト全体を投稿するのは難しいため、問題の原因となっている実際のコードを投稿するのが難しい場合があります。しかし、私はこれだと思います:

ここでは、ルート (React-router 4.x) 内のコンポーネントに props を渡そうとしています。これを行うには、ホームページを作成する関数を提供します。これは、レンダリングのたびにホームページを再作成する可能性があります。

問題は、ルート内のすべてのレンダリングでページを再作成せずに小道具を渡す方法ですか?

0 投票する
1 に答える
1479 参照

angular - 別のコンポーネントから特定のコンポーネント テンプレートを再レンダリングする方法は? 角度 2

angular 2 html template を再レンダリングしようとしていますが、調査の結果、NgZone を使用する必要があることがわかりました。だから私がやっていることは、メインコンポーネントでナビゲーションバーコンポーネントを呼び出し、それが userdetails コンポーネントを呼び出します。

userdetails コンポーネントには、名前などのユーザーの詳細が表示されます。ユーザーの名前を変更する別のコンポーネントがあります。そのため、名前を変更しても、ナビゲーション バー (userdetails コンポーネント) の名前は変更されません。

だから私は私の変更の詳細コンポーネントでそのようにしようとします usedetails コンポーネントを初期化し、そこからメソッドを呼び出します.コンソール。

SO http 終了直後に名前を更新すると、コンソールで新しい名前を受け取りますが、ナビゲーションバーでは名前は同じままです。

これまでのところ、唯一の解決策はウィンドウのリロードです...しかし、ユーザーは変更に何が起こったのか分からないため、これはユーザーフレンドリーではありません。

だから私は何かをスキップしていますが、何ですか?

前もって感謝します !

0 投票する
1 に答える
547 参照

reactjs - Store を更新しても Redux が再レンダリングされない

Store を更新し、コンソールにログオンしましたが、コンポーネントの内容は変わりません。レンダー関数で質問をレンダリングします。これが私のレデューサーです。質問[0]を更新しましたが、何も変わりません。

レンダリング機能