我是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;
答案 0 :(得分:2)
基本上,reducer会获取预定义对象的先前状态作为参数,并且该函数必须在每种情况下都返回对象的新状态。
在Redux减速器文档中,您可以看到以下语句:
reduceer是一个纯函数,它接受上一个状态和一个动作,然后返回下一个状态。
进一步了解Redux中的Handling actions。
答案 1 :(得分:0)
如果您看到文档,
Reducers指定应用程序的状态如何响应发送到商店的操作而改变。请记住,操作仅描述发生了什么,而没有描述应用程序状态如何变化。
因此,每当您调用一个动作时,reduce都必须基于该动作返回一个新状态。
对于您的情况,(action.type === "INCREMENT)
如果action.type与您的情况不匹配,并且您没有设置任何默认情况,它将返回null value
。
现在,如果您不返回任何值,那么您的redux状态将不会提及您的给定状态,这就是为什么需要默认状态来维护reducer存储中的状态数据。