Как можно использовать аргумент секунд useMemo
или useCallback
для оптимизации на основе значения внутри обратного вызова?
const [s, setS] = useState({ page: { title: 'a', index: 3 } });
const getPage = data => data.page;
const cb = useCallback(data => setS(data), [getPage(data)]);
// ^ ain't no data here :(
useEffect(() => externalService.sub(cb));
Обычно я хочу передать обратный вызов внешней службе, но хочу, чтобы setSomeState
вызывался только в том случае, если data.page
был изменен.
Я знаю, что могу обернуть setS
другой функцией и сделать shallowEqual
перед ее вызовом, но мне было интересно, если useMemo
или useCallback
предоставляют что-то подобное.