期待される動作ですか?
これは「再マウント」のようには見えません。 <div>
再レンダリングするだけです。 😄
Reactプロファイラーを使用してサンドボックスを見てみましょう:
プロファイラーは、アプリが再レンダリングされるたびに、すべてのリストアイテムが再レンダリングされることを示しています。 これは、リストアイテムがインライン関数コンポーネントであり、アプリがレンダリングされるたびに再作成されるためです。
これは、Reactがレンダリングするたびにそれらを_新しいタイプ_として認識するため、それらも再レンダリングすることを意味します。
次のように、リストアイテムのレンダリングをApp
レンダリングメソッドの外に移動してみてください。
次に、プロファイラーを使用して、このフォークされたサンドボックスを見てみましょう。
プロファイラーは、 forceUpdate()
を呼び出すと、 App
コンポーネントのみが再レンダリングされることを示しています。
フォークされたサンドボックスのソースコードは次のとおりです。
https://codesandbox.io/s/n9z6lr0m2m
インラインレンダリングメソッドが表示されないように、ドキュメントを更新する必要があるかもしれません。 簡単に読めるようにドキュメントを簡潔にしようとしましたが、現在どのように誤解を招く可能性があるかはわかります。
ドキュメントを更新して、インラインレンダリング関数を削除しました! うまくいけば、これは将来の混乱を避けるでしょう。 😅
説明ありがとうございます。 本当に感謝しています😄
最も参考になるコメント
ドキュメントを更新して、インラインレンダリング関数を削除しました! うまくいけば、これは将来の混乱を避けるでしょう。 😅