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

使用静态超文本标记语言导出Next.js中的客户端初始化

施梓
2023-03-14

我们正在使用react-i18next开发一个用于本地化的Next.js应用程序。我们使用< code >下一次导出(静态HTML导出)。react-i18next库需要初始化代码,我不知道在哪里调用它。

(我们不使用next-i18next,因为这不适用于下一次导出。)

现在我在单独的模块(页面/之外)中进行初始化。如果我将该模块导入 pages/_app.tsx 并运行构建脚本(下一个构建

错误:设置原始模式 EIO

如果我尝试从自定义文档导入它,也会发生同样的情况。

我目前的解决方法是在页面/index.tsx中导入初始化模块——这是可行的,但感觉不对。

该项目使用TypeScript和yarn v1,并用创建下一个应用(以防其中任何一个相关)构建。


共有1个答案

亢保赫
2023-03-14

自定义应用程序导入看起来确实是客户端初始化代码的正确位置(根据自定义聚合填充推断)。

问题是_app模块将在下次构建时执行

修复方法是将初始化代码包装在:

if (typeof window !== 'undefined') {
  // initialization code - will only run on client side
}

基于https://flaviocopes.com/nextjs-server-client-code/

这确实意味着初始化代码也不会在 Jest 测试中运行,但 react-i18next 可以被模拟。

 类似资料:
  • 导出为HTML会生成以下内容: 报告在页面上居中,但应左对齐。 使用JRHtmlExporter的HTML\u HEADER参数看起来很有希望,但这些类已被弃用。这就是解决方案: 现在我必须使用网络。旧金山。jasperreports。出口HtmlExporter和net。旧金山。jasperreports。出口SimpleHtmlReportConfiguration类,如下所示: 您将如何修复

  • 我是新来的。我想解析html,但问题是我们必须在中指定的URL,我将在运行时从其他页面响应此URL。有没有办法将收到的网址传递到中?我读过这样的东西: 但是我不知道如何使用它。我很想知道是否有其他方法比jsoup更好。

  • 对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西

  • 我有一些信息要在对话框中显示。它像标题,然后在它下面的文本;标题,然后在它下面的文本。像wise一样,有4个标题和4个描述要显示。它应该是这样的 描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 如您所见,有粗体文本、下划线文本、换行符等。我想将这种文本添加到警报框中,所以下面是我尝试的。 然而,这个技巧没有奏效。发生的是,

  • 我正在尝试使用放心来检查服务器返回的HTML文档的一些属性。演示该问题的SSCCE如下所示: 现在,此尝试以,这是由所有可能的错误大约 30 秒左右后超时! 如果我用< code>xmlPathConfig()删除这一行。用()。功能(...)当特性“http://Apache . org/XML/features/disallow-DOCTYPE-decl”设置为true时,由于< code>D

  • 我正在工作的工具提示和从后端我将获得数据与html标记。我需要在工具提示中显示相应的标签中的相应数据。例如,我将从后端获得Hello用户单击此处。我必须显示为你好用户在h1格式,点击这里应该是一个锚。我尝试了这两个功能,并取代其不工作。 具有以下功能: 替换: https://codesandbox.io/s/serene-fast-u8fie?file=/App.svelte