我的 Redux 存储状态返回 undefineduseEffect
钩子。如果我在useEffect
中删除空数组[]
,我的 Redux 存储返回true
值,但非常多,有时在无限循环中执行!
useEffect(() => {
store.subscribe(() => {
setNodeProperties({
positionX: store.getState().schemaViewer.positionX,
positionY: store.getState().schemaViewer.positionY,
});
console.log(nodeProperties);
});
}, []);
问题是setNodeProperties
会将更改排队等待nodeProperties
并且不会立即发生,因为它是异步的。因此,一旦nodeProperties
发生变化,我会尝试运行副作用。组件中可以有多个useEffect
钩子。
尝试如下操作:
useEffect(() => {
console.log(nodeProperties);
}, [nodeProperties]);
通过这种方式,您可以捕获nodeProperties
的更改,并仅在那时运行日志记录步骤。建议阅读是使用效果钩。
我希望这有帮助!