Reactjs 对于React/Redux应用程序,当我们路由到其他组件时,是否应该始终清除该组件的应用程序状态?
对于一个简单的RESTful类型的应用程序,比如说,如果它是blog posts,那么当我们看到所有帖子的列表,并导航到只看到一篇帖子时,我们是否应该将应用程序状态的Reactjs 对于React/Redux应用程序,当我们路由到其他组件时,是否应该始终清除该组件的应用程序状态?,reactjs,redux,react-router,Reactjs,Redux,React Router,对于一个简单的RESTful类型的应用程序,比如说,如果它是blog posts,那么当我们看到所有帖子的列表,并导航到只看到一篇帖子时,我们是否应该将应用程序状态的posts设置为[]或null 当我们从一篇文章导航到查看所有文章时,我们是否也应该将应用程序状态的post设置为null (我们可能在组件willunmount()函数中执行此操作: componentWillUnmount() { this.props.clearPost(); } 其中clearPost()是
posts
设置为[]
或null
当我们从一篇文章导航到查看所有文章时,我们是否也应该将应用程序状态的post
设置为null
(我们可能在组件willunmount()函数中执行此操作:
componentWillUnmount() {
this.props.clearPost();
}
其中clearPost()
是动作类型CLEAR\u POST
的动作创建者,当减速器看到此动作类型时,将返回null
。)
为什么??因为当用户看到所有帖子的列表时,现在单击一篇帖子,我们将看到一篇帖子。但是,如果网络出现故障或速度较慢怎么办?然后我们将看到以前加载的帖子,它可能是不同的帖子,甚至是删除的帖子。如果网络瘫痪,我们会看到这个错误的记录,它会一直存在。如果网络速度慢或不稳定,我们会看到错误的记录,N秒后,我们会看到正确的记录
完整的职位列表也是如此。当我们从其他组件(如ShowOne post组件)导航回此索引页时,如果网络出现故障或速度较慢,我们也会看到错误的帖子列表内容。然后,如果网络关闭,这个错误的列表将保留。如果网络速度较慢,则N秒后将更正错误列表
如果客户服务代表正在使用此应用程序呢?他们可能会对客户说,“不,我看到这张记录(或列表),上面写着某某。根据记录,你是[…],计算机不会说谎,先生”
因此,是否始终建议在componentWillUnmount()
函数中将该组件的应用程序状态设置回空数组或null
始终?基本上,如果这个组件有一个名为INITIAL\u STATE
的常数,我们将它设置回INITIAL\u STATE
?我不同意这一点。因为一个状态片可以由多个组件使用。我认为在特定情况下清理状态是一件好事,例如,当您完成一些复杂的处理流或类似的事情时。