2016-12-04 3 views
1

Flux標準アクション標準を使用してReduxアプリケーションのアクションを書きたいと思います。ペイロード自体をどのように構造化すべきかはわかりません。 Flux Standard Action github repoに与えられた例は次のとおりです。ペイロードを構造化するためのFlux Standard Action規約は何ですか?

{ 
    type: 'ADD_TODO', 
    payload: { 
    text: 'Do something.' 
    } 
} 

今、私は私のペイロードに複数の情報を渡している場合は?例えば、簡単なtodoアプリケーションでは、私のペイロードがtodoのオブジェクトを渡すとします(上記のtodoのテキストではなく)。違いは、ペイロードかどうかであるように

{ 
    type: 'ADD_TODO', 
    payload: { 
    todo: { 
     title: 'Do something.', 
     priority: 'HIGH', 
     completed: false 
    } 
    } 
} 

に見えます:このように、

{ 
    type: 'ADD_TODO', 
    payload: { 
    title: 'Do something.', 
    priority: 'HIGH', 
    completed: false 
    } 
} 

かのtodoオブジェクトは、ペイロード内にネストする必要があるかどうか:私はそれがこのような構造にする必要があるかどうかわかりませんよBEにするか、レデューサーによって消費されたデータを格納することを意味します。別の言い方をすれば、私のレデューサーがあるタイプのデータをペイロード(ペイロードはトドゥオブジェクト)として期待するのか、ペイロードから出ているものを指定すべきか(ペイロードはTODOオブジェクトを含む)

答えて

3

計算と電気通信では、ペイロードは実際に意図されたメッセージである 送信データの一部です。ペイロード は、ペイロード 配信を容易にするためだけに送信されたヘッダーまたはメタデータを除外します。

上記引用のとおり、​​は、減速材が探しているデータである必要があります。何かのように、

{ 
    type: 'ADD_TODO', 
    payload: { 
    title: 'Do something.', 
    priority: 'HIGH', 
    completed: false 
    } 
} 

あなたの減速はあなたが合格actionに基づいて新しい状態を生成するであろうし、私たちの行動が何をすべきかというreducerを伝える責任があります。

あなたのレデューサーがtype: 'ADD_TODO'を持つFSアクションを取得すると、それはtodoを追加しなければならないことを知り、todoは​​プロパティです。

したがって、あなたの行動のペイロードがトドゥーになることは明白です。ペイロードに何があるかを知る必要はありません。 FSA自体が、このアクションにはtypeのtodoのペイロードが含まれていることを伝えるためです。

+0

ありがとうございます、それは多くの意味があります。もう1つの質問 - Michelleは「ペイロードを常に生の価値にすることができないようにして、データを変更せずに簡単に追加できるようにしたい」と答えています(http://stackoverflow.com/a/29632652/5914982)。ペイロード:idだけでなく、常にペイロード:{id:id}を実行します。あなただけのIDが必要とされる 'REMOVE_TODO'のようなシナリオでこれに同意するか、それとも同意しますか? – ailurus

+0

私はMichelleの答えに同意します。 'REMOVE_TODO'アクションでは、あなたのレデューサーは、アクションが、無視されたプロパティを持つ' todo'型のペイロードを持っていることを知ります。 'REMOVE_TODO'アクションは' id'プロパティだけを必要とするためです。 – Thaadikkaaran

+0

Flux Standard Actionsの考え方は、今私にとってもっと意味があると思います。あなたの答えをありがとう! – ailurus

関連する問題