如何使用useMemo
或useCallback
的seconds参数基于回调中的值进行优化?
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
是否提供类似的功能。