为什么需要在Redux中从reducer返回状态?

时间:2019-10-06 15:44:47

标签: javascript reactjs redux

我是Redux的新手,正试图获得如何正确使用Redux的方法,但是我对为什么需要在reducer中返回状态感到困惑。这是代码:

const initialState = {
  counter: 0
};

const reducer = (state = initialState, action) => {
  if (action.type === "INCREMENT") {
    return {
      counter: state.counter + 1
    };
  }
  return state;  // why do we need to use this code?
};

export default reducer;

2 个答案:

答案 0 :(得分:2)

基本上,reducer会获取预定义对象的先前状态作为参数,并且该函数必须在每种情况下都返回对象的新状态。

在Redux减速器文档中,您可以看到以下语句:

  

reduceer是一个纯函数,它接受上一个状态和一个动作,然后返回下一个状态。

进一步了解Redux中的Handling actions

答案 1 :(得分:0)

如果您看到文档,

  

Reducers指定应用程序的状态如何响应发送到商店的操作而改变。请记住,操作仅描述发生了什么,而没有描述应用程序状态如何变化。

因此,每当您调用一个动作时,reduce都必须基于该动作返回一个新状态。 对于您的情况,(action.type === "INCREMENT)如果action.type与您的情况不匹配,并且您没有设置任何默认情况,它将返回null value

现在,如果您不返回任何值,那么您的redux状态将不会提及您的给定状态,这就是为什么需要默认状态来维护reducer存储中的状态数据。