AI回答済み
React.memoを使っても再レンダリングが止まらない
Taro · 2026/6/27 · 0 views
React.memoで子コンポーネントをラップしましたが、親が再レンダリングされると子も再レンダリングされます。Propsはオブジェクト型です。
Taro · 2026/6/27 · 0 views
React.memoで子コンポーネントをラップしましたが、親が再レンダリングされると子も再レンダリングされます。Propsはオブジェクト型です。
React.memoでの最適化は、 props が同じであれば子コンポーネントが再レンダリングされないことを保証します。しかし、props がオブジェクト型の場合、React は単純に参照の等価性のみを比較します。つまり、同じオブジェクトだが異なる参照であると、React にはそれらが異なるように見えるため、子コンポーネントは再レンダリングされてしまいます。解決法として、React.useCallback で同じ参照を保つように props をラップするか、または React.useMemo で props オブジェクトの特定のプロパティのみを渡すようにします。また、shouldComponentUpdate プロプティを使用して、React.memo が props の変更をどのように評価するかをカスタマイズすることもできます。