Перехватчики реакции useMemo / useCallback пропустить

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

Не вижу проблемы с кодом. Не могли бы вы придумать воспроизводимую демонстрацию на codeandbox или что-то в этом роде?

Yangshun Tay 09.11.2018 07:28

@YangshunTay, это недействительный код javascript. data в вызове getPage(data) не входит в область действия. Я должен сказать, что это не входит в сферу применения lexical.

Sam R. 09.11.2018 19:03

Я задавал аналогичный вопрос на реальных примерах. Вы можете проверить это здесь: stackoverflow.com/questions/54963248/…

bekliev 02.03.2019 22:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
3
1 043
0

Другие вопросы по теме