Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 对于React/Redux应用程序,当我们路由到其他组件时,是否应该始终清除该组件的应用程序状态?_Reactjs_Redux_React Router - Fatal编程技术网

Reactjs 对于React/Redux应用程序,当我们路由到其他组件时,是否应该始终清除该组件的应用程序状态?

Reactjs 对于React/Redux应用程序,当我们路由到其他组件时,是否应该始终清除该组件的应用程序状态?,reactjs,redux,react-router,Reactjs,Redux,React Router,对于一个简单的RESTful类型的应用程序,比如说,如果它是blog posts,那么当我们看到所有帖子的列表,并导航到只看到一篇帖子时,我们是否应该将应用程序状态的posts设置为[]或null 当我们从一篇文章导航到查看所有文章时,我们是否也应该将应用程序状态的post设置为null (我们可能在组件willunmount()函数中执行此操作: componentWillUnmount() { this.props.clearPost(); } 其中clearPost()是

对于一个简单的RESTful类型的应用程序,比如说,如果它是blog posts,那么当我们看到所有帖子的列表,并导航到只看到一篇帖子时,我们是否应该将应用程序状态的
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

我不同意这一点。因为一个状态片可以由多个组件使用。我认为在特定情况下清理状态是一件好事,例如,当您完成一些复杂的处理流或类似的事情时。