reactjs - 在状态 react-redux 中更新数组的正确时间
问题描述
我刚开始在 react 应用程序中使用 react-redux,我用 react-redux 制作的唯一项目是一个简单的 json 提取器和更新器,(这也是基于速成课程 LOL),现在我正在创建第二个简单的应用程序,甚至认为它确实如此不需要redux,并且可以完美地与react一起使用。所以这是单词/数字赤道。用户填写第一个和第二个输入,应用程序确定它们是否相等,然后将方程添加到方程的历史(以前的方程)。所以我的问题是我不知道什么时候应该更新previous equations
数组,在减速器或生命周期方法(componentDidUpdate
)中,在他更新生命周期方法的速成课程中,但我读到它也可以在减速器中。所以哪个是更好的做法
这个:
export default function equateReducer(state = initialState, action) => {
switch(action.type){
case ADD_TO_EQUATIONS:
return {
...state,
equations: [...state, action.payload.equation]
}
}
}
或这个
componentDidUpdate(nextProps){
if(nextProps.equation){
this.props.equations.unshift(nextProps.equation)
}
}
PS:我真的不知道生命周期方法中的更新是如何工作的(我的意思是它是如何获取 nextProps.equation 的)
解决方案
Redux 背后的(一个)想法只是通过定义的动作改变状态
所以不是直接.unshift over equations array(我猜你是从mapDispatchToProps连接它),你应该调度一个动作来达到同样的结果(所以你的答案是:第一个选项看起来更好)
如果你认为 redux 对这个任务来说太过分了,看看 useReducer 钩子
推荐阅读
- hibernate - 我可以在 Spring Data JPA 中将 NaN 处理为 NULL 吗?
- jakarta-ee - Java 11 和 javax.rmi.PortableRemoteObject
- go - 如何在 Golang 中通过分隔符拆分字符串
- android - 是否可以设置 RecyclerView 使用带有动态列的 GirdLayoutManager?
- reactjs - React Hook useMemo 缺少依赖项
- qt - 如何在 qt 设计器中对按钮进行分组
- python - 如何在熊猫数据框中的索引列中添加数据
- php - PHP将循环中的字符串与similar_text进行比较,但仅显示匹配是否唯一
- android - 针对 Android 12 时,我们可以删除 Android 清单中的所有位置权限条目吗?
- google-sheets - 索引/匹配 - 尝试查找条目时收到错误