【问题标题】:React- page won't refreshReact-页面不会刷新
【发布时间】:2020-08-28 06:53:03
【问题描述】:

我现在的情况:

我想点击一张图片,然后导航到 /details 页面。如果我单击图像,则 url 会刷新但我的组件未加载。

我尝试了一些我发现的解决方案,例如 window.location.reload()。这种方法有效,但我必须在图像上单击 2 次才能刷新页面,我不明白为什么?所以它并没有解决我的问题。

我发现如果我将链接(无论是图像还是按钮)插入导航栏中,链接工作正常并且页面会刷新。仅当我将链接插入页面时,它才起作用。

可能是因为 Navbar 组件在 Switch 组件之外? (见下文)这是唯一的区别。也许你们中的某个人有一个想法。

<React.Fragment>
        <Navbar />
        <Switch>
          <Router exact path="/">
            <ProductList />
          </Router>

          <Router path="/details">
            <Details />
          </Router>

          <Router path="/cart">
            <Cart />
          </Router>

          <Router>
            <Default />
          </Router>
        </Switch>
      </React.Fragment>

【问题讨论】:

  • 我们需要更多的上下文,但在这种情况下使用 windows.location.reload() 是绝对不行的。确保您的路由器正确重定向,以便您附加在图像上的事件真正推送到/detail 页面,确保详细信息组件页面确实呈现它应该呈现的内容。
  • @vaske details 组件正确呈现页面。我什至尝试只渲染一个导航到 /details 的简单按钮,因为我认为我的代码是错误的,但无论如何它不起作用。
  • 推送到/detail 是什么意思?我导航到 /details 页面的代码如下所示 { value.handleDetail(id) }}>

标签: javascript reactjs react-router


【解决方案1】:

您只需要一个Router 组件(应该在Switch 之外),对于单独的路由,您应该使用Route

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2011-05-07
    • 2019-02-01
    • 2022-07-31
    • 2022-07-19
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多