警告 Prop `href` 不匹配。使用 React 服务器端渲染

2024-02-13

我在用react-router-dom我猜测这是导致问题的原因,但我不知道从哪里开始寻找或如何解决它。我也遇到类似的错误Warning: Did not expect server HTML to contain a <nav> in <div>.

正如我所说,我不太确定在哪里查找,所以如果您认为某些代码会有所帮助,请告诉我,我会发布它。否则,我可以发布我用来执行 SSR 的代码。

EDIT:确切的错误:Warning: Prophrefdid not match. Server: "/profile/5a073dc44cb45b00125e5c82" Client: "profile/5a073dc44cb45b00125e5c82"

我检查过客户端,它有/profile/:id所以不确定哪里说没有/,至于另一个错误<nav> in <div>, 我有一个nav在我的 header 中,但我不太确定如何“修复”它。

import React from 'react';
import { renderToString } from 'react-dom/server';
import { StaticRouter } from 'react-router-dom';
import { Provider } from 'react-redux';
import { renderRoutes } from 'react-router-config';
import serialize from 'serialize-javascript';
import { Helmet } from 'react-helmet';
import { matchRoutes } from 'react-router-config';

import routes from './src/routes';
import createStore from './src/stores';

function handleRender(req, res) {
  let initial = {};

  if (req.vertexSession != null && req.vertexSession.user != null) {
    initial.user = { currentUser: req.vertexSession.user };
  }
  const store = createStore.configure(initial); // create Store in order to get data from redux

  const promises = matchRoutes(routes, req.path)
    .map(({ route, match }) => {
      // Matches the route and loads data if loadData function is there
      return route.loadData
        ? route.loadData(store)
        : route.loadDataWithMatch ? route.loadDataWithMatch(store, match) : null;
    })
    .map(promise => {
      if (promise) {
        return new Promise((resolve, reject) => {
          promise.then(resolve).catch(resolve); // lets all data load even if route fails
        });
      }
    });

  Promise.all(promises).then(() => {
    const context = {};
    if (context.url) {
      return res.redirect(301, context.url); // redirect for non auth users
    }

    if (context.notFound) {
      res.status(404); // set status to 404 for unknown route
    }
    const content = renderToString(
      <Provider store={store}>
        <StaticRouter location={req.path} context={context}>
          <div>{renderRoutes(routes)}</div>
        </StaticRouter>
      </Provider>
    );
    // console.log(store.getState());
    const initialState = serialize(store.getState());

    const helmet = Helmet.renderStatic();

    res.render('index', { content, initialState, helmet });
  });
}

module.exports = handleRender;

你已经解决这个问题了吗?我的反应应用程序也遇到了类似的问题并修复了它。这是我的问题:

<Link to="./shop">Shop</Link>

my fix:

<Link to="/shop">Shop</Link>

无论您使用服务器渲染什么,都是问题所在。我建议梳理一下你的路由模块,看看你是否在某处忘记了正斜杠。如果这不起作用,请查看您在路由文件中导入的组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

警告 Prop `href` 不匹配。使用 React 服务器端渲染 的相关文章

随机推荐

  • Sphinx 和 JavaScript 文档工作流程 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于我的 JavaScript 框架 我想使用 Sphinx 由于我是 Sphinx 世界的新手 我希望你们能帮助我开始使用 Sphi
  • Ruby on Rails:如何检测是否通过 JSON 访问?

    我得到了一个调用控制器方法 getInfo 的 GET URL 可以通过 mydomain com getInfo json params BLAHBLAH 或 mydomain com getInfo params BLAHBLAH 调用
  • Objective-C 中的不可变对象:大 init 方法?

    我想要一个 Objective C 中具有不可变字段的对象 在 C 中 我将使用具有私有 setter 和大型构造函数的 Properties 我会在 Objective C 中使用什么 使用 property 似乎不允许我将 setter
  • 获取该月的最后一天? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP 本月最后一天 https stackoverflow com questions 1686724 php last day of the month 有没有类似的功能 date gt getM
  • 如何在 matplotlib 中保存调整为对象大小的图形?

    大家好 我正在尝试保存 matplotlib 中的数字 它保存图形周围的空白 我的意思是它增加了空间 它不保存调整后的对象大小 在 Inkscape 中编辑它们非常容易 我在这个软件中进行编辑 但是当图形超过 50 个时 这就不太好了 我这
  • 为什么 boost::filesystem::path 和 std::filesystem::path 缺少运算符+?

    考虑以下关于路径分解的断言 其中每个局部变量例如stem有明显的初始化 例如auto stem path stem assert root path root name root directory assert path root nam
  • 谷歌地图绘制文物

    在开发我当前的项目时 我正在使用谷歌地图 我在地图上画了一些圆圈 并在缩放或移动地图后在地图上发现了一些伪影 但让我们看一下文档中的官方 Google Maps Circles 演示 谷歌地图圆圈简单 https google develo
  • 为表中的主键随机生成 1-999 之间的唯一数字

    我有一个问题 我不知道如何优雅地解决 背景资料 我有一张小部件表 每个小部件都分配有一个数字范围内的 ID 假设在 1 999 之间 1 999 的值作为 lower range 和 upper range 保存在我的数据库中名为 conf
  • 如何组合这两个 WordPress 搜索查询?

    我有两个搜索查询 人们以默认方式搜索与参数匹配的任何帖子标题 第二个查询设置为搜索帖子元键为 SKU 的任何帖子 就像搜索查询一样 我正在尝试组合这两个查询 以便搜索将返回标题或 sku 与搜索词匹配的任何帖子 第一个查询 args arr
  • Tensorboard 不再显示标量

    我决定更新张量板 因为它没有显示图表 在图表面板上我只能看到一个空白页 没有错误消息 现在我已经更新了图表 这是我的张量板显示的唯一内容 现在我看不到标量或直方图 我有 No scalar data was found 消息 直方图等也是如
  • Apache (EC2) 上的文件上传速度慢于用户的网络上传速度

    我有一个 EC2 实例 运行基本的 LAMP 堆栈作为 Web 服务器 用户可以通过我的网络应用程序上传照片 然后将其存储在目录中并记录在 MySQL 中 通常 这些上传速度与用户的互联网上传速度允许的速度一样快 不幸的是 多个用户报告有时
  • 在 Azure Functions 中将 F# 记录类型返回为 JSON

    我正在 F 中创建一个简单的 azure 函数 最后 我返回 JSON 格式的记录类型 我正在做这样的事情 let y Gender Woman Frequency 17 Percentage 100 0 req CreateRespons
  • 在使用 get 请求的 http 调用时将数组传递到 URLSearchParams

    浏览 WebAPI 文档URL搜索参数 https developer mozilla org en US docs Web API URLSearchParams 我没有找到任何有关将数组作为参数传递的文档 有人可以帮忙吗 事实上 你不能
  • 极坐标比 numpy 慢?

    我正在考虑使用polars代替numpy在一个解析问题中 我将结构化文本文件转换为字符表并对不同的列进行操作 然而 似乎polars大约慢5倍numpy在我执行的大多数操作中 我想知道为什么会出现这种情况以及我是否做错了什么polars应该
  • 依赖 NSUbiquitousKeyValueStore 存储重要数据是否安全?

    我了解到NSUbiquitousKeyValueStore总是可用的 也当没有 iCloud 帐户 https stackoverflow com a 11174855 251760已设置 这让我相信我可以安全地将重要数据存储在其中 而无需
  • 如何让表单和交易在phoenix+ecto中发挥良好?

    我正在玩 Phoenix Ecto 我偶然发现了一些对我来说不习惯的东西 我有一个代表一个表格Invitation 创建邀请函时 我们还需要创建一个User显然我希望两者都发生在一个事务中 这样我就可以保持数据的一致性 在我的表格中我要求n
  • 有没有在 GCP Composer Airflow 上安装私有依赖项的成功案例?

    背景信息 通常在容器环境中 我可以使用以下命令轻松安装我的私有依赖项 requirements txt像这样 index url https user pass some repo jfrog io some repo api pypi p
  • Google 存储桶的签名网址与提供的签名不匹配

    我在使用谷歌存储时遇到了困难 所以我正在尝试做一个签名网址 https cloud google com storage docs access control Signed URLs 已经有客户端 ID 这是一封电子邮件 和私钥 如所述h
  • 如何绘制 3D 直方图

    我有三个数组 我正在尝试制作 3D 直方图 x 1 2 3 2 5 2 6 8 6 7 y 10 10 20 50 20 20 30 10 40 50 60 z 105 25 26 74 39 85 74 153 52 98 到目前为止 这
  • 警告 Prop `href` 不匹配。使用 React 服务器端渲染

    我在用react router dom我猜测这是导致问题的原因 但我不知道从哪里开始寻找或如何解决它 我也遇到类似的错误Warning Did not expect server HTML to contain a