如何创建具有依赖关系的callbackRef

时间:2019-09-13 17:58:07

标签: reactjs react-hooks usecallback

This blog postthe official docs展示了如何使用useCallback创建回调引用。

但是没有人举一个useCallback有依赖性的例子。

我应该如何设置?

例如,如果我执行以下操作,它将无法正常工作,因为只要myDependency发生更改,回调都会在没有任何参数的情况下触发。

const [myDependency, setMyDependency] = useState();

const myRef = useCallback(node => {
    doSomeMagic(node, myDependency);
}, [myDependency]);

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是将逻辑分为useCallbackuseEffectuseCallback用于跟踪节点。 useEffect用于在节点更改或myDependency更改时触发。

const [node, setNode] = useState();
const [myDependency, setMyDependency] = useState();

const myRef = useCallback(node => {
    setNode(node);
}, []);

useEffect(() => {
    doSomeMagic(node, myDependency);
}, [node, myDependency]);