2016-12-04 32 views
1

我想使用的流量標準動作標準編寫的行動對我的終極版的應用程序,而我不能確定如何有效載荷本身的結構應當。在Flux Standard Action github repo給出的例子是:構造有效載荷的Flux標準動作約定是什麼?

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

現在,如果我傳遞什麼多條信息在我的負荷?例如,在一個簡單的待辦事項應用程序中,假設我的有效內容傳遞了待辦事項對象(而不僅僅是上面的待辦事項文本)。我不能確定它是否應該被結構是這樣的:

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

還是待辦事項對象應該被嵌套在有效載荷內,像這樣:

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

它看起來像區別在於是否有效載荷旨在成爲或包含減速器消耗的數據。換句話說,我的減速器是否應該期待某種類型的數據作爲有效載荷(有效載荷是一個待辦事項對象),或者他們是否應該規定他們在說什麼了有效載荷(有效載荷包含一個待辦事項對象)。

回答

3

在計算和電信中,有效載荷是 傳輸數據的一部分,它是實際的預期消息。淨荷 排除發送僅僅是爲了便於有效載荷 遞送的任何標題或元數據。

根據以上報價,​​應該只是你的減速器所尋找的數據。像,

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

你的減速將基於該​​action您通過新的國家和我們的行動是負責任的告訴reducer需要做什麼。

當你的減速器得到一個FS行動,它具有type: 'ADD_TODO',它知道它必須添加待辦事項和待辦事項是與​​財產。

因此,它是明確的,你的行動,有效載荷將是一個待辦事項。沒有必要告訴有效載荷中有什麼。因爲FSA本身會告訴我們這個動作包含了一個有效載荷,它是type todo。

+0

謝謝,使有很大的意義。 一個問題 - 在[這個答案](http://stackoverflow.com/a/29632652/5914982),米歇爾喜歡「總是有效載荷的對象(從未原始值),使得數據可以很容易地在不改變被添加接收站點「,並始終執行有效負載:{id:id},而不僅僅是有效負載:id。您是否同意或不同意這種情況,如'REMOVE_TODO',只需要該ID? – ailurus

+0

我同意米歇爾的回答。通過'REMOVE_TODO'動作,你的reducer知道動作的'todo'類型的有效載荷具有被忽略的屬性。因爲'REMOVE_TODO'行動只需要'id'屬性。 – Thaadikkaaran

+0

我明白了,Flux標準行動的整個構想現在對我來說更有意義。謝謝您的回答! – ailurus