
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
React + TypeScript: memoで包んだコンポーネントでもコンテクストの更新により再レンダーされる - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
React + TypeScript: memoで包んだコンポーネントでもコンテクストの更新により再レンダーされる - Qiita
コンポーネントをmemoで包むと、親から渡されたプロパティ(props)が直前と変わらないかぎり再レンダーさ... コンポーネントをmemoで包むと、親から渡されたプロパティ(props)が直前と変わらないかぎり再レンダーされません。ただし、コンテクストを使っていると(useContext)、propsは前と同じでも、コンテクストが更新されれば再レンダーされます。簡単なコード例で、その動きと対応方法を探ってみましょう。 ふたつの子コンポーネントでコンテクストを使う つぎのモジュールsrc/App.tsxがつくるコンテクスト(createContext)は、ふたつの状態変数(nameとtheme)をvalueとして子のコンポーネントツリーに与えています。子コンポーネントは、NameEditorとGreetingのふたつです。あとに示すように、どちらもmemoでラップしてあります。なお、メモ化した子コンポーネントにプロパティとして渡す関数(handleChange)は、useCallbackに包みましょう。