项目(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>)
存根或保障他人的代码