2017-01-16 1 views
0

私は現在、別のファイルに自分の行動タイプを定義しています:Redux - 行動タイプを別に保つ必要がありますか?

export const SET_SOME_ID = 'SET_SOME_ID'; 
export const SET_SOME_NAME = 'SET_SOME_NAME'; 
... 

その後、自分の行動の作成者には、私はこれをやっているファイル:

import * as ATYPES from './actionTypes.js'; 
export function setSomeId(id) { 
    return { type: ATYPES.SET_SOME_ID} 
} 
export function setSomeName(name) { 
    return { type: ATYPES.SET_SOME_NAME} 
} 
... 

私はちょうど持って済ます必要があるように私は感じますアクションタイプ別のファイルにだけはactionCreators.jsファイルに次の操作を行います。

export function setSomeId(id) { 
    return { type: 'SET_SOME_ID'} 
} 

アプリケーションが成長すなわちとして、この必要があるのでしょう、それBECこれは正しいことだと分かりましたか?

+0

それは開発者次第実際だとベストプラクティスの問題のように聞こえる。まともな規模と複雑なプロジェクトのために古いものに投票し、長期的な可読性とメンテナンスのためにいくつかの定型文を取引します。小規模なプロジェクトでは、創造者のダンが言ったように、還元する必要はないかもしれません。 – Xlee

+0

https://github.com/erikras/ducks-modular-redux –

答えて

2

は、タイプを別のファイルに定義することなく文字列を返すだけです。しかし、これは一般的に悪いコーディング手法です。任意の文字列、特に複数のファイルにまたがって使用される文字列は定数変数として定義され、使用されている場所であればどこでもインポートできます。

あなたのケースでは、あなたのアクションクリエイター内で、1つ以上のあなたのレデューサー内でアクションタイプの文字列を使用する必要があります(複数のレデューサーを1つのアクションタイプに対応するように設定できます)。アクションタイプを定数として定義し、使用する場所にインポートすることで、それらが使用されているソースのどれかで誤ってスペルが間違ってしまうリスクが軽減され、バグ/スペルのデバッグに多くの時間が掛かります。

また、すべての行動タイプを定数として定義することは、あなたと他のチームメンバーが、いくつかのアクションクリエイターの行動タイプを簡単に見ることを可能にします。

再来のAPIドキュメントは、多かれ少なかれ、それはあなた次第ですが、定数としてアクションタイプを定義するに陽性のリストに入ると言う:http://redux.js.org/docs/recipes/ReducingBoilerplate.html#actions(右アクションクリエイターセクションの前)

+3

もご覧になることをお勧めします。また、良いエディタはあなたのために定数をオートコンプリートできます。文字列を自動補完することはできません。 –

関連する問題