在react-redux状态下更新数组的正确时间

时间:2019-09-28 17:29:11

标签: reactjs redux react-redux lifecycle reducers

我刚刚开始在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)

1 个答案:

答案 0 :(得分:0)

Redux背后的想法之一只是通过定义的动作来改变状态

因此,您应该分派一个动作以实现相同的结果(所以答案是:第一个选项看起来更好),而不是直接在方程数组上进行非移位(我想您是从mapDispatchToProps连接它的)。

如果您认为redux对于该任务而言过于严格,请查看useReducer挂钩