reactコンポーネントの最適化のためにReact.memoを利用して再レンダリングを抑制したいのですが、コンポーネントが以下のようにfunctionキーワードで定義された関数コンポーネントの場合もメモ化することは出来るのでしょうか?(調べた限りだとアロー関数(FC型)の例しかなくて、、)
※ なぜReact.FCを使えないかというと、コンポーネントに渡すpropsの型を一部ジェネリクス型にしているためです。
typescript
1 2 3// Child 4interface OwnProps<T> { 5 isVisible: boolean; 6 data: T[]; 7 onClick: () => void; 8} 9 10 11export function Child<T>(props: OwnProps<T>) { // ?? react.memo ?? 12 return ( 13 <> 14 <button onClick={props.onClick}> 15 {isVisible && props.data}; 16 </button> 17 </> 18 ); 19}; 20 21// Parent 22export default function App() { 23 24 const [isVisble, setIsVisible] = useState(false); 25 const data = ["hoge", "fuga", "piyo"]; 26 const handleClick = useCallback(() => { 27 setIsVisible((prev) => !prev); 28 },[isVisible] 29); 30 31 return ( 32 <> 33 <Child data={data} onClick={handleClick} isVisible={isVisible}/> 34 </> 35 ); 36}; 37
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。