比方說,我有我的終極版應用程序的初始狀態,看起來像這樣:終極版添加UI屬性狀態對象
{
themeParks : []
}
和主題公園的對象存儲在MongoDB中或其它地方是這樣的:
{
ParkName : "Disney World",
NumberOfRides : 25
}
我的應用程序提取(通過ajax)並顯示加載的主題公園,並允許我執行CRUD操作以添加/刪除/編輯主題公園。
我的問題是,在我需要的新屬性中,合併應用程序中與UI更改相關並需要包含在狀態中的最佳點是什麼?例如,在某些時候,我需要一個「編輯」布爾屬性添加到每個主題公園,讓它們看起來像這樣:
{
ParkName : "Disney World",
NumberOfRides : 25,
editing : false
}
這種「編輯」標誌需要在每個主題公園對象的屬性,提供在使用應用程序時讓多個主題樂園處於可編輯狀態的能力,這是否正確?顯然,我不想或不需要將此標誌存儲在我的數據庫模式中,因爲它只涉及UI操作。
我的第一個猜測將包括數據,像這樣的成功返回後,我的.then
函數中這樣的邏輯,但我不知道:
let ajax = new AjaxHanlder();
let promise = ajax.DoGet('/path/to/api-endpoint');
promise.then((themeParks) => {
themeParks.map((themePark, i) => {
themePark.editing = false;
});
dispatch({type : LOAD_THEME_PARKS, payload : themeParks});
});
此外,有沒有用於提供一個約定由於初始狀態是一個空數組,並且不知道它,因此在加載主題樂園對象之前定義了它?
在此先感謝有這方面的見解,因爲我試圖提高自己的終極版設計模式的知識:-)
沒想到減速機內加入新的道具,但是是有道理的。我試了一下,非常感謝您的反饋。 –
已經在實踐中發現它,並發現它很好地工作。 @Nysor再次感謝 –