我刚刚开始在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)
}
}
P.S:我真的不知道生命周期方法中的更新是如何工作的(我是说它如何获取nextProps.equation)
答案 0 :(得分:0)
Redux背后的想法之一只是通过定义的动作来改变状态
因此,您应该分派一个动作以实现相同的结果(所以答案是:第一个选项看起来更好),而不是直接在方程数组上进行非移位(我想您是从mapDispatchToProps连接它的)。
如果您认为redux对于该任务而言过于严格,请查看useReducer挂钩