我正在学习Redux,我对reducer如何更新状态感到困惑。例如,下面是代码:
data: {
googleSpreadsheetKey: '16AL59eH385JODQsnbB9vYeJ0liSYgNbELRdkHhb78vE',
seriesMapping: [{
'hc-key': 0,
'infiziert': 1,
'tote': 2,
'genesen': 3,
'bundesland': 4
}]
,
complete: function(options) {
options.series[0].name = 'Corona';
}
},
问题是,当运行此代码const initialState = {
counter: 0
};
const counterReducer = (state = initialState, action) => {
if(action.type==="INCREASE"){
return {
counter: state.counter+1;
}
}
return state;
};
时,它将在这里将计数器从0更改为1
counter: state.counter+1;
让我感到困惑的是,如果它不变地改变,那么如果运行此代码,有可能记住先前的状态:
const initialState = {
counter: 0
};
不止一次。希望您能理解我的意思
答案 0 :(得分:0)
counterReducer
不需要访问以前的状态。
state.counter+1;
正在访问state.counter的当前值,而不是先前的值。
我希望我没有误解了这个问题。
编辑问题1:Khreshna, ok but where does current state come from?
如果您熟悉其他语言,"10" + 1
将返回各种错误,表明您无法使用字符串和整数进行数学运算。但不是javascript。
JS具有强制类型,这意味着它可以将类型转换为其他有关操作的类型。
长话短说,JS "10" + 1
将返回101
(int 1
被转换为字符串)。
在null + 1
中将返回1
。那就是即使您从未设置计数器的值,您也能获得该值