This blog post和the official docs展示了如何使用useCallback
创建回调引用。
但是没有人举一个useCallback
有依赖性的例子。
我应该如何设置?
例如,如果我执行以下操作,它将无法正常工作,因为只要myDependency
发生更改,回调都会在没有任何参数的情况下触发。
const [myDependency, setMyDependency] = useState();
const myRef = useCallback(node => {
doSomeMagic(node, myDependency);
}, [myDependency]);
答案 0 :(得分:0)
我认为最好的方法是将逻辑分为useCallback
和useEffect
。 useCallback
用于跟踪节点。 useEffect
用于在节点更改或myDependency
更改时触发。
const [node, setNode] = useState();
const [myDependency, setMyDependency] = useState();
const myRef = useCallback(node => {
setNode(node);
}, []);
useEffect(() => {
doSomeMagic(node, myDependency);
}, [node, myDependency]);