項目(TodoList的)與immutable
庫中創建,source here組件及其後無法卸載刪除店
存儲結構:project
有很多tasks
,在終極版店:State
- 地圖,projects, tasks
- 記錄
當我異步刪除項目...
export const removeProject = project => (dispatch) => {
if (!isProjectExist(project)) return Promise.resolve()
return projectService
.delete(project)
.then(
() => {
dispatch(remove(project))
console.log("post removeProject resolved")
},
handleError,
)
}
....這是在初始化後創建的 - 它將被刪除並正確卸載,但是當項目被作爲initialState
通過 - ProjectList
不會被重新描繪,並ProjectItem
嘗試呈現自己與陳舊的數據,和失敗,因爲在畫面
它看起來像減速器returs改變了數據,但我使用immutablejs,以前我使用normalizr-immutable
,但我認爲這個庫中的問題的來源,並寫我自己的normalizeInitialState
(source),它沒有幫助,現在我想臨屋區的T問題redux-immutable
也許源我掙扎着這個問題的解決
整整一天,我不認爲這是我們可以解決。 React狀態更改爲 異步,React可能(或可能不)批處理它們。因此,當你按下「刪除」,Redux商店更新時,以及 應用程序都會收到新的狀態。即使應用程序狀態更改導致 項目的卸載,那將比mapStateToProps發生的更早的是 項目。
除非我錯了,否則我們無能爲力。你有兩種選擇:
請求所有需要的狀態在應用程序(或更低,例如ItemList)水平 並將其傳遞給「啞」項目。爲「當前未安裝」狀態添加保護措施,以將mapStateToProps 添加進去。例如,在這種情況下,您可以從渲染返回空值 。如果mapStateToProps 返回null,我們可能會讓connect()生成的組件 返回null。這有意義嗎?這太令人吃驚了嗎?
嗯,我從來沒有見過在mapStateToProps像return (<div></div>)
存根或保障他人的代碼