我的Redux存储状态返回在useEffect
挂钩中未定义。如果我删除[]
中的空数组useEffect
,那么我的Redux存储返回的true
值却非常大,有时会无休止地执行!
useEffect(() => {
store.subscribe(() => {
setNodeProperties({
positionX: store.getState().schemaViewer.positionX,
positionY: store.getState().schemaViewer.positionY,
});
console.log(nodeProperties);
});
}, []);
答案 0 :(得分:0)
问题是setNodeProperties
将使nodeProperties
的更改排队,并且不会立即发生,因为它是异步的。因此,一旦nodeProperties
发生更改,我将尝试产生副作用。您的组件中可以有多个useEffect
钩子。
尝试以下操作:
useEffect(() => {
console.log(nodeProperties);
}, [nodeProperties]);
这样,您将捕获nodeProperties
的更改,然后仅运行日志记录步骤。建议阅读Using the Effect Hook。
我希望这会有所帮助!