0

这篇博文和官方文档展示了如何使用useCallback来创建回调 ref。

但是没有一个例子useCallback有依赖关系的例子。

我应该如何设置?

例如,如果我执行以下操作,它将不起作用,因为每当myDependency更改时回调将被触发而无需任何参数。

const [myDependency, setMyDependency] = useState();

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

1 回答 1

0

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

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

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

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

于 2019-09-13T17:58:07.020 回答