Useful for arrays... probably
<Memoize value={() => expensiveComputation(a, b, c)} deps={[a, b, c]} />
import React, { useState, useEffect } from 'react' | |
interface MemoizeProps<T, Y extends unknown> { | |
value: () => T | |
dependencies: Y[] | |
} | |
const Memoize = ({ value, dependencies }) => { | |
const [state, setState] = useState(value) | |
useEffect(() => { | |
setState(value()) | |
}, dependencies) | |
return state | |
} | |
export { Memoize } |