React перехватывает useMemo / useCallback пропустить - PullRequest
0 голосов
/ 06 ноября 2018

Как можно использовать аргумент секунд 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 предоставляют что-то подобное.

...