`useSelector` 闭包中的过时值
作者: zimmru创建于 2023年8月11日更新于 2026年3月18日
QQ 您使用的 React, ReactDOM/ React Independent, Redux, 和 React Redux 的哪个版本 ?
- 反应:18.2
- 反应雷德克:8.x (我可以在所尝试过的所有版本中转载这个问题:8.0.0,8.0.5,和8.1.2).
什么是当前的行为?
我在更新一个从7.x到8.x的反应器的项目 我觉得我正碰到一个虫子 我看见有人呼吁 " 使用选择者 " ,其价值被扭曲。 以下是一个演示这个问题的简化项目: https://codesandbox.io/s/react-redux-8-close-w8zqf4?file=/src/App.js
在点击"Distpatch"按钮时,第一个"useSelector"被调用5次. 除了第三通外,所有电话都要接通。 增加的呼叫是好的,但所捕获的变量`现在 ' 已恢复到该呼叫的原值 -- -- 第二次呼叫时已经更新。 注意:如果打开了控制台,就会看到一条关于"被捕获的 stale data"的信息,它能识别使用Selector的不良调用. 在反应-redux 7.x中,这个附加呼叫没有被发出.
什么是预期的行为?
这里与7.2.9版本的反应-redux完全相同:https://codesandbox.io/s/react-redux-7-close-4lq8ph?file=/src/App.js
QQ 哪个浏览器和操作系统受到此期的影响?
无回复( N)
在前作"React Redux"的版本中此作有效果吗?
- 对
内容来源: reduxjs/react-redux