【问题标题】:correct time to update array in state react-redux在状态 react-redux 中更新数组的正确时间
【发布时间】:2020-01-28 14:49:16
【问题描述】:

我刚开始在 react 应用程序中使用 react-redux,我使用 react-redux 制作的唯一项目是一个简单的 json 提取器和更新器,(这也是基于速成课程 LOL),现在我正在创建第二个简单的应用程序认为它不需要redux并且可以完美地与react一起使用。所以这是单词/数字赤道。用户填写第一个和第二个输入,应用程序确定它们是否相等,然后将方程添加到方程的历史(以前的方程)。所以我的问题是我不知道什么时候应该更新previous equations数组,在reducer或生命周期方法(componentDidUpdate)中,在他更新生命周期方法的速成课程中,但我读到它可以在reducer也。那么哪个是更好的做法

这个:

 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)

【问题讨论】:

    标签: reactjs redux react-redux lifecycle reducers


    【解决方案1】:

    Redux 背后的(一个)想法只是通过定义的动作改变状态

    所以不是直接.unshift over equations 数组(我猜你是从 mapDispatchToProps 连接它),你应该调度一个动作来达到同样的结果(所以你的答案是:第一个选项看起来更好)

    如果你认为 redux 对于这个任务来说太过分了,看看 useReducer 钩子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 2020-11-11
      • 2019-06-13
      • 1970-01-01
      相关资源
      最近更新 更多