Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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
Javascript 阻止的更新:react路由器和redux_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 阻止的更新:react路由器和redux

Javascript 阻止的更新:react路由器和redux,javascript,reactjs,redux,Javascript,Reactjs,Redux,路由器有一些关于何时使用路由器的信息。然而,我发现它们并不完全清楚 例如,文档会说在以下情况下使用路由器 该组件通过connect()(Comp)连接到redux 该组件不是“路由组件”,这意味着它不是这样呈现的: 我不清楚的是: 首先,上面的第一点和第二点是否与和相连?e、 g.第一次和第二次发生时,组件是否不更新?(还是一个或?) 在第一种情况下,这是否意味着当我有连接(mapstatetops)(Comp)时,不使用路由器就可以了 第二点我完全不清楚。这是否意味着我们应该对任何不是“路由

路由器有一些关于何时使用路由器的信息。然而,我发现它们并不完全清楚

例如,文档会说在以下情况下使用路由器

  • 该组件通过connect()(Comp)连接到redux
  • 该组件不是“路由组件”,这意味着它不是这样呈现的:
  • 我不清楚的是:

    • 首先,上面的第一点和第二点是否与和相连?e、 g.第一次和第二次发生时,组件是否不更新?(还是一个或?)
    • 在第一种情况下,这是否意味着当我有
      连接(mapstatetops)(Comp)
      时,不使用路由器
      就可以了
    • 第二点我完全不清楚。这是否意味着我们应该对任何不是“路由组件”的组件(
      connect
      -ed或not?)应用
      withRouter

    更新:经过一段时间后,这似乎不再是路由器4.4版本的问题

    在第一种情况下,这是否意味着当我有connect(mapstatetops)(Comp)时,不使用路由器就可以了

    connect()(Comp)
    指定它是连接的组件,这并不意味着
    withRouter
    对于其他
    connect
    参数,如
    connect(mapstatetops)(Comp)
    可能是不必要的。也提到了这一点:

    // before
    export default connect(mapStateToProps)(Something)
    
    // after
    import { withRouter } from 'react-router-dom'
    export default withRouter(connect(mapStateToProps)(Something))
    
    这是否意味着我们应该将withRouter应用于任何不是“路由组件”的组件(连接或不连接?)

    如果组件不是路由组件,我们应该将
    withRouter
    应用于该组件,并且我们希望该组件在位置更新时更新,即以某种方式使用。一个流行的例子是导航菜单,其中活动项高亮显示,它不是路线组件,但需要知道当前路线

    或者为什么不将路由器连接到任何连接的组件上,它会覆盖所有情况吗


    这将为可能不需要它们的组件提供不必要的路由器事件更新,因为它们不使用路由道具。

    您知道我在相关链接中发布的文档是否实际上暗示,如果发生1和2,组件可能不会得到更新?(还是一个or,1或2?)。从它的编写方式来看有点不清楚。好吧,出于某种原因,我怀疑现在的文档暗示,如果1和2都发生,组件可能不会重新呈现。我仔细检查了文档所说的内容,这没有多大意义,我真的无法理解它描述的情况。据我所知,常规组件和连接组件的行为方式与路由器中的
    和``相同,因此不清楚它们为什么强调连接组件。如果组件收到路由道具,它将被更新。如果没有,就不会。对不起,我的解释有点混乱。为了更清楚,我对答案进行了一些编辑。我建议在本文档中打开一个问题来澄清这一点。如果有他们描述的特定情况,应用程序可能有一个组件在位置更改时不更新,问题是Redux实现了shouldComponentUpdate,如果没有收到道具,没有任何迹象表明有任何更改,那么在文档中看到这个示例将非常好。我同意,甚至还不清楚这是和还是应该在“1”和“2”之间,因为无法从他们描述的情况中推断出来。我得到了一些答案,仅供参考:。如果你想随时更新你的答案。