2016-08-10 156 views
1

我有一張桌子,每一行都有一頓飯。 每餐都有很多食材組成。 我希望能夠刪除配料並刪除配餐。 狀態和刪除配料函數應該如何?React嵌套狀態修改

國家應該是這樣的:

{ 
    meals: [{name:'breakfast', id:11}, ...] 
    ingredients: [{name: 'eggs', id:111, meal_id:11}...] 
} 

或本:

{ 
    meals: [{ 
     name:'breakfast', 
     ingredients: [{name: 'eggs'}] 
    }] 
} 

我認爲第二個方案是更好的。 而最重要的問題:刪除成分函數應該如何看起來像?應該每個成分都有自己的唯一ID,並且我應該派遣一個刪除動作傳遞成分ID?

回答

1

膳食應該是父母成分。對於每餐兒童成分,膳食標識,名稱,配料應作爲道具傳遞。該膳食應該有一份成分兒童成分的列表,其中傳遞了成分詳細信息。該ID應該被傳遞給膳食和成分成分,因爲每個兒童成分應該具有唯一的關鍵。

刪除成分的事件處理程序應在相應成分被刪除並反映在道具中的膳食成分中處理。同樣,應該由父母膳食部分刪除膳食,新的狀態應該作爲道具傳遞下去。