我的应用程序中需要将子组件中的数据发送到字段的onChange上,当子组件卸载时,我想将完整的数据发送到redux,而当子组件再次挂载时,我要从redux预加载它。
在我的实现中,我是通过将数据发送到父组件来实现的,在卸载时,我传递了一个回调,其中父组件将状态分配给redux,当子组件再次挂载时,我使用useSelector来获取redux值。
但是我面临的问题是redux正在调度prevState值而不是更新值。当我第二次卸载组件时,将分派更新的值
我附上了codeandbox链接
https://codesandbox.io/s/react-redux-with-hooks-forked-hp79o?file=/src/App.js
复制步骤:
在文本框中输入您的姓名和电子邮件。 单击卸载按钮以卸载子组件。(分派值将为空) 再次单击“卸载”按钮以安装子组件。 (不会预填充文本框) 再次单击“卸载”以卸载。 (这次发送的值将是所写的姓名和电子邮件) 再次单击mount进行安装。 (文本框将被填充,因为这次将调度值。)
我不知道我要去哪里错了。
答案 0 :(得分:0)
您需要结合使用useRef和useEffect来使当前状态更改可用于在卸载期间使用效果 这在这里解释
有效的更新代码和框代码在这里 https://codesandbox.io/s/react-redux-with-hooks-forked-gymhl?file=/src/Unmounted.js