我正在创建一个 Redux reducer 来修改我的应用程序的配置。我在外部文件中有默认配置,我想将它们用作默认状态。因为我正在访问外部文件的内容,该内容可能会发生变化,这是否会使我的 reducer 变得不纯净?如果是这样,我该如何重写它以使其纯净?
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'
};
最佳答案
Because I'm accessing the contents of external file, which could change, does that make my reducer impure?
不,这只是defaultValue,当state == undefined
时使用它
您还可以在创建商店时传递默认状态:
createStore(appStore, { appConfigs: configDefaults })
纯函数,是一个没有副作用的函数。
应用程序的每个版本中的initialState可能不同,就像reducer本身一样,但它仍然是纯粹的..
关于javascript - 当 Redux reducer 访问外部文件的默认状态时,使 Redux reducer 变得纯粹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42073844/