我正在创建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本身,但是它仍然是纯净的。

09-30 16:01
查看更多