NextJS - ReactDOMServer 尚不支持 Suspense

2024-02-22

我目前正在尝试将加载器组件合并到使用 NextJS 构建的网站中。我想使用 Suspense 显示加载屏幕,可能是在刷新页面或更改路线后。 我的代码是这样的:

import Head from 'next/head'
import { Loader } from '../components/loader'
const { Suspense } = require('React')

function MyApp({ Component, pageProps }) {
   return (
   <>
     <Suspense fallback={<Loader />}>
        <Head>
         .... some codes such as meta tags, title tags ....
        </Head>
      <Component {...pageProps} />;
      </Suspense>
   </>
   )
}

我的问题是我收到一条错误消息ReactDOMServer 尚不支持 Suspense。但我想使用 Suspense 在我的页面上启用加载屏幕。很像这样website https://www.sunniesface.com/


您可以使用 React 18 功能,例如suspense在 Next.js 中高级功能 https://nextjs.org/docs/advanced-features/react-18。显然它仍处于实验阶段,可能会导致您的应用程序出现问题。

npm install next@latest react@rc react-dom@rc

要启用,请使用实验标志concurrentFeatures: true

// next.config.js
module.exports = {
  experimental: {
    concurrentFeatures: true,
  },
}

启用后,您可以对所有页面使用 Suspense 和 SSR 流。

import dynamic from 'next/dynamic'
import { lazy, Suspense } from 'react'

import Content from '../components/content'

// These two ways are identical:
const Profile = dynamic(() => import('./profile'), { suspense: true })
const Footer = lazy(() => import('./footer'))

export default function Home() {
  return (
    <div>
      <Suspense fallback={<Spinner />}>
        {/* A component that uses Suspense-based */}
        <Content />
      </Suspense>
      <Suspense fallback={<Spinner />}>
        <Profile />
      </Suspense>
      <Suspense fallback={<Spinner />}>
        <Footer />
      </Suspense>
    </div>
  )
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NextJS - ReactDOMServer 尚不支持 Suspense 的相关文章

随机推荐

  • module.exports 将所有函数包含在一行中

    这是一个后续问题在 Node js 中 如何 包含 其他文件中的函数 https stackoverflow com questions 5797852 in node js how do i include functions from
  • 检测图像上的点击

    我正在尝试动态加载图像并显示它们 如下所示 var uploader plupload getUploader uploader bind FileUploaded function up file res append div a hre
  • 当我可以直接访问IP时,为什么还需要xip io?

    xip io 欢迎屏幕显示如下 10 0 0 1 xip io 解析为 10 0 0 1 我可以直接使用IP 为什么还要经过xip io呢 是用域名而不是IP来访问服务器吗 主要用例是当您的应用程序需要支持多个子域时 以这些生产子域为例 w
  • 在 VIM 中处理大文件

    我尝试在 VIM 中打开一个巨大的 2GB 文件 但它被卡住了 我实际上不需要编辑文件 只需高效地跳转即可 我如何在 VIM 中处理非常大的文件 我今天有一个 12GB 的文件需要编辑 vim LargeFile 插件对我不起作用 它仍然耗
  • Laravel 迁移:类“未找到”

    我正在将 Laravel 准系统项目部署到 Microsoft Azure 但是每当我尝试执行php artisan migrate我收到错误 2015 06 13 14 34 05 production ERROR 异常 Symfony
  • 如何在不使用第三方网关服务的情况下设置 Kannel

    我想设置 Kannel 来发送 SMS 消息 而无需通过 Clickatell 或 Twilio 等第三方网关 换句话说 我想连接到每个无线服务 AT T Verizon 等 的 SMPP 服务器 以这种方式运行 Kannel 服务器有多困
  • CMake 不支持工具集规范

    我正在尝试构建使用 CMake 的 Checked C 项目 但是当我生成 makefile CMake 时出现以下错误 checkedc build cmake llvm CMake Error at CMakeLists txt 57
  • 在 python 中使用 selenium 将密钥发送到文本区域不起作用

    我试图通过制作一个机器人来学习硒 该机器人可以访问 Instagram 帐户并对帖子发表评论 这是我的代码 from selenium import webdriver from selenium webdriver common keys
  • aarch64;加载获取独占与加载独占

    有什么区别LDAXR LDXRAArch64 指令集之外的指令 从参考手册来看 它们看起来完全相同 获取 一词除外 LDAXR 加载获取独占寄存器 从按基址寻址的存储器加载字到Wt 将物理地址记录为独占访问 LDXR 加载独占寄存器 从内存
  • 如何 mod_rewrite 并保留查询字符串?

    我想将 URL mod rewrite 到另一个页面 但我还希望保留添加的任何查询字符串 RewriteEngine On enforce trailing slashes RewriteCond REQUEST FILENAME f Re
  • java中处理外部库的正确方法(使用eclipse)

    在某种程度上 这是我之前未回答的问题的后续 link https stackoverflow com questions 3238644 adding user defined libraries to svn 在过去的几周里不断升级 现在
  • 为什么memcached不能跨节点同步

    在memcached概述中here http code google com p memcached wiki NewOverview It says Memcached servers are generally unaware of e
  • 如何在 Angular-CLI 组件内使用电子浏览器窗口?

    Angular cli 不接受组件内部的电子 如何在 Angular CLI 组件内使用电子浏览器窗口 我收到这样的错误 fs existsync 还有其他选项可以将电子与 Angular2 组件一起使用吗 var electron req
  • DeadlineExceededException 在 Google App Engine for Java 中是如何实现的?

    应用程序于谷歌应用引擎 http appengine google com 必须有在 30 秒内返回响应数据的 Web 请求 当超过这个时间时 DeadlineExceededException抛出异常 time jsp java lang
  • 如何获取专为Android设备设计的前后摄像头的百万像素?

    如何使用Android代码识别Android设备的前后摄像头的百万像素 我尝试过 CameraInfo 但没有获得百万像素 例如 为了识别我们正在使用的设备型号android os Build MODEL 同样 任何识别前置和后置摄像头百万
  • 反应材料表自动页面大小

    我正在使用 React Material Table 我有问题 有没有办法动态设置pageSize https material table com docs all props基于页面上的可用空间 如果没有 API 可以做到这一点 如何从
  • FirestoreRecyclerAdapter 不更新视图

    我正在使用 FirestoreRecyclerAdapter 并遇到了问题 Query query db collection SOME COLLECTION whereEqualTo key key orderBy dueDate 如果我
  • 让嵌入式闪存自动播放

    我真的很困惑这怎么行不通 但视频由于某种原因无法自动启动 我做错了什么吗 嵌入的代码用于 Flash 播放
  • 从 Chrome 扩展获取唯一的 ClientID?

    我正在开发 chrome 扩展 我需要能够将每个客户识别为独特的客户 我无法将 guid 存储在 cookie 中 因为 cookie 可以被删除 我需要从系统本身读取一些独特的东西 现在 我知道 JS 无法访问客户端资源 本地资源 但是
  • NextJS - ReactDOMServer 尚不支持 Suspense

    我目前正在尝试将加载器组件合并到使用 NextJS 构建的网站中 我想使用 Suspense 显示加载屏幕 可能是在刷新页面或更改路线后 我的代码是这样的 import Head from next head import Loader f