2017-02-06 2 views
0

私のアプリケーションの設定を変更するReduxレデューサーを作成しています。私は外部ファイルにデフォルトの設定があり、デフォルトの状態としてそれらを使用したいと思います。変更する可能性のある外部ファイルの内容にアクセスしているため、私のレデューサーが不潔になりますか?もしそうなら、これを書き直して純粋にするにはどうすればいいですか?デフォルト状態の外部ファイルにアクセスするときにReduxレデューサーを純粋にする

減速:

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' 
}; 

答えて

1

私は変更される可能性が外部ファイルの内容を、アクセスしていますので、それは私の減速の不純を作るのですか? 、

createStore(appStore, { appConfigs: configDefaults })

ピュア機能:

ありませんが、それはstate == undefined

また、あなたはストアを作成しているデフォルトの状態を渡すことができるとき、それが使用されている、ちょうどはdefaultValueです副作用がない関数です。

はい、これは私が何を意味するかである

+0

..初期状態は、減速機そのもののように、アプリの各バージョンでは異なる場合がありますが、それはまだ純粋だ:) – webdeb

+0

それは私を行いますので、私は(あなたを信じたいですより簡単に)しかし、ポイントを押すだけです....将来的には、私は自分のアプリの設定を別のものにしたいと思っているので、設定ファイルの内容を変更して、私のレデューサーの出力を変更します私がパラメータとして入力状態を定義していないとき。一方では、それは不純な減速機のように聞こえる。一方、私は本質的にそのアプリを書き直してしまったので、そのアプリの純粋なバージョンと見なすことができます。後者の解釈が正しいのですか、あるいは私はまだ純粋な/不純なものを定義する方法について何か不足していますか? –

+0

次のシナリオがあります:アプリケーション自体がconfigDefaultsファイルの内容を変更します。このシナリオでは、減速機は、同じ減速機入力パラメータを使用しても、そのファイル変更の前後の異なる出力を生成する可能性があります。減速機を不純にしていませんか? –

関連する問題