【发布时间】:2020-04-29 17:37:38
【问题描述】:
在 useEffect 的依赖数组中定义 setState 值背后的想法是什么:
const [someState, setSomeState] = useState();
...
useEffect(() => {
// Do something
setSomeState('some value');
}, [setSomeState]);
React Hook useEffect has a missing dependency: 'setSomeState'.
Either include it or remove the dependency array.
eslint(react-hooks/exhaustive-deps)
不确定这个例子是否会导致 eslint 要求在依赖数组中定义 setSomeState,但是我在使用 useEffect 编写时看到了这种时刻。在这种情况下,React 在听什么?我的理解是useEffect 监听依赖数组中值的变化,但setSomeState 会改变吗?我在这里错过了什么?
【问题讨论】:
-
写在React docs:
React guarantees that setState function identity is stable and won’t change on re-renders. This is why it’s safe to omit from the useEffect or useCallback dependency list.
标签: reactjs dependencies use-effect