【发布时间】:2021-11-04 13:03:44
【问题描述】:
我之所以想到这个问题,是因为我们从文档中了解到:
useCallback(fn, deps) 等价于 useMemo(() => fn, deps)。
useMemo 的文档说:
请记住,传递给 useMemo 的函数在渲染期间运行。 不要在那里做任何你在渲染时通常不会做的事情。 比如副作用属于useEffect,而不是useMemo。
我认为这也意味着我不能做setState。
现在,如果我们有这段代码:
const memoizedValue = useMemo(() => computeExpensiveValue(), []);
以上引用是否意味着我们不能在 computeExpensiveValue 或作为 useMemo 参数的内联函数中产生副作用?
因为如果这意味着我们不能在 computeExpensiveValue 中产生副作用,这意味着我们也不能在传递给 useCallback 的函数中产生副作用,因为该行与以下内容相同:
const memoizedValue = useCallback(computeExpensiveValue, []);
【问题讨论】:
-
我怀疑你不是唯一一个被文档的那部分混淆的人。
标签: javascript reactjs react-hooks