javascript - 当 Redux reducer 访问外部文件的默认状态时,使 Redux reducer 变得纯粹

标签 javascript redux

我正在创建一个 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/

相关文章:

javascript - 在函数/promise 范围之外使用对象

javascript - 如何解决 ExtJS 4.2 缓冲存储中的 findRecord 问题

Redux - 在 reducer 中使用 action 对象方法而不是 switch

reactjs - 将多个 redux 子状态连接到 React 组件

javascript - 使用 clipRect() 后设置 PhantomJS 捕获整个屏幕

javascript - 使用 jQuery 删除更新总数据的表行

javascript - 如何在javascript中设置一分钟计数器?

reactjs - React Material UI - 导出多个高阶组件

javascript - ReactJS:渲染请求组件列表

angular - ngrx/store 未显示表单的更新值