我正在尝试将全局状态复制到组件本地状态。 我正在使用Redux和钩子。
这是我的代码,但是本地状态返回一个空对象。
const transaction = useSelector((state) => state.data.transaction)
const [localTransaction, setLocalTransaction] = useState(transaction)
谢谢!
答案 0 :(得分:1)
useState
的默认值是在装入时设置的,因此如果那时存储中没有任何内容,它将是无效的,并且对其所做的任何更改也将不会反映出来。如果您有充分的理由再次将其存储在本地状态,则需要执行以下操作:
const transaction = useSelector((state) => state.data.transaction)
const [localTransaction, setLocalTransaction] = useState(null)
useEffect(() => {
if (!localTransaction && transaction) {
setLocalTransaction(transaction);
}
}, [transaction, localTransaction])