reactjs - React 从 useEffect 中的 Redux 商店获取状态
问题描述
useEffect
从钩子中的 Redux 存储获取状态的正确方法是什么?
useEffect(() => {
const user = useSelector(state => state.user);
});
我正在尝试获取当前状态,useEffect
但我无法使用该useSelector
调用,因为这会导致错误说明:
Invariant Violation: Hooks can only be called inside the body of a function component.
我想我理解为什么它违反了钩子的主要规则之一。
通过查看Redux 文档上的示例,他们似乎使用selectors.js
文件来收集当前状态,但mapStateToProps
我理解的这个引用不再需要。
我是否需要创建某种应该在useEffect
钩子中调用的“getter”函数?
解决方案
不要忘记添加user
为依赖项,useEffect
否则您的效果将不会获得更新的值。
const user = useSelector(state => state.user);
useEffect(() => {
// do stuff
}, [user]);
推荐阅读
- python - 视图中的问题,“学生”类没有“对象”成员pylint(无成员)?
- sql - Insert into 命令不插入任何内容,但 select 语句返回所需的所有元素
- c++ - 如何使用类创建矩形
- linux - Shell 在 if;then 条件后停止执行命令
- java - 如何从 .7z 文件中解压缩符号链接,并将其保留为符号链接?
- crystal-reports - 创建带有正面和背面数据的明信片
- javascript - [b,a] =[a,b] 和 const [b,a]=[a,b] 有什么区别
- android - [Android]端口转发后无法连接xampp myphpadmin
- python - How to use Tensorflow's `file_io` in multi-project/multi-configuration setting?
- r - 格子 xyplot 不会显示其中一个图