我正在创建Redux reducer来修改我的应用程序的配置。我在外部文件中有配置默认值,我想将其用作默认状态。因为我正在访问外部文件的内容(可能会更改),这会使我的减速器不纯吗?如果是这样,我该如何重写以使其纯净?
减速器:
import configDefaults from './configDefaults';
export default const configOptions = (state = configDefaults, action) => {
switch (action.type) {
case 'SET_GLOBAL_CONFIG_PARAMETER':
return {...state, [action.parameter]: action.value};
default:
return state;
}
};
配置文件:
export default configDefaults = {
fontSize: 12,
backgroundColour: 'white'
};
最佳答案
因为我正在访问外部文件的内容(可能会更改),这会使我的减速器不纯吗?
不,这只是defaultValue,当state == undefined
您还可以在创建商店时传递默认状态:createStore(appStore, { appConfigs: configDefaults })
纯函数是一种没有副作用的函数。
每个应用版本中的initialState都可以不同,例如reducer本身,但是它仍然是纯净的。