当前位置: 首页 > 知识库问答 >
问题:

如何在react中的服务器端渲染中使用react路由器dom?

湛钊
2023-03-14

在服务器端react中使用react路由器dom会创建错误。

Invariant Violation: Browser history needs a DOM

如果url匹配我的组件路径,我将使用react router dom BrowserRouter在div中呈现我的组件。

  const routes = [

  { path: 'dashboard',
    exact: true,
    component: Dashboard
  },
  { path: 'notification',
    exact: true,
    component: Notification
  }

];

然后使用以下代码以特定div为目标渲染我的组件:

<div>
     { routes.map((route, index) => (
       <Route
            key={index}
            path={`${match.url}/${route.path}`}
            exact={route.exact}
              />
        ))}
</div>

但此代码仅在客户端react中工作。如何将此实现到服务器端?

共有2个答案

周承天
2023-03-14

看来你错过了添加组件到路由。

<div>
         { routes.map((route, index) => (
           <Route
                key={index}
                path={`${match.url}/${route.path}`}
                exact={route.exact}
                component={route.component}
                  />
            ))}
    </div>
邓焱
2023-03-14

请看一看官方文档,您需要使用不同的历史提供程序进行服务器端渲染,因为服务器上没有真正的DOM(和浏览器的历史记录)。

您可能还想使用内存历史记录,因为它在服务器端运行良好。

 类似资料:
  • 我是一个新的反应和反应。我已经花了几个小时了,我只是走到了死胡同。 我正在使用CreateReact应用程序和用于css的bulma。我的依赖项: }, 我查看了stackoverflow的所有相关问题,创建了react应用程序文档,并在他们的回购协议中搜索了他们的开放问题部分,谷歌搜索了所有可能的关键字。我不知所措。 我的路由器只会呈现一个路由(Homeroute)。 如何让它显示/创建路线?

  • 问题内容: 我正在尝试为我的react应用设置服务器端渲染,并且试图使用出色的react-router模块来处理非js情况(某些爬虫,当用户关闭js时,原因)。但是,我遇到了麻烦。我一直在这里使用出色的响应作为各种指南,但我却遇到了奇怪的错误。尝试使用时,我会坚持不懈。我是否设置了服务器端渲染错误,缺少明显的东西或其他东西? 我的设置: 真正的基本Express服务器 顶级反应组件 输出: 问题答

  • 我使用开关标签路由不同的路由 但这只会加载路径/和/主页的第一个组件,也会加载loginpage nothing,并且主页组件不会加载到/主页路径! 我在切换前尝试过使用浏览器路由器标签,尝试过先加载主页,也是一样的只有主页组件加载 App.js 登录age.js 家age.js 预期 访问/应该加载登录页面 访问/主页应加载主页

  • 问题内容: 我刚刚学会了最近的反应,打算将其用于下一个项目。我已经遇到过几次反应服务器端渲染,但是想知道为什么在“现代时代”我们仍然需要它。 在本文中,它认为通过服务器端渲染,用户不必等待从CDN或其他地方加载这些js即可看到初始静态页面,并且该页面将在js到达时恢复功能。 但是在使用webpack生产配置和gzip构建之后,整个捆绑包(包括react,我的代码和许多其他东西)仅占用40kb,而我

  • 从节点(express)服务器端渲染时,我无法将初始道具传递到我的React组件 以下是我的组件的简短版本: 这是服务器端 在render()方法中尝试使用组件时,prop似乎没有传递给组件 有什么想法吗?

  • 问题内容: 我一直在思考,我对客户端和服务器之间的路由感到困惑。假设我在将请求发送回Web浏览器之前使用ReactJS进行服务器端渲染,并使用react- router作为客户端路由在页面之间切换而不刷新为SPA。 我想到的是: 路线如何解释?例如,从首页()到帖子页面()的请求 路由在服务器端还是客户端去哪里? 它如何知道如何处理? 问题答案: 注意,此答案涵盖了React Router版本0.