问题标签 [react-suspense]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
48 浏览

reactjs - 下一个/动态中的悬念选项使用无效

我有一个加载器组件,我希望它在我的页面呈现时出现。根据文档,当使用 suspense 我的代码应该是这样的

但我最终得到一个错误,上面写着

下一个/动态中的悬念选项使用无效。阅读更多: https ://nextjs.org/docs/messages/invalid-dynamic-suspense

我确定我遵循了文档中的说明,但我不确定为什么会出现这些错误。

0 投票
1 回答
95 浏览

typescript - 和 React.createElement

在 .tsx 中,这按预期工作:

但是 .ts 中假定的等效项不起作用:

尝试呈现 SuspenseComponentTS 时的错误消息如下:

打印到控制台,它们似乎是等效的:

输出expect(SuspenseComponentTSX).toEqual("")

输出expect(SuspenseComponentTS).toEqual("")

0 投票
0 回答
33 浏览

reactjs - 关于代码拆分的 React 案例研究。React.lazy 的使用有问题?

我对反应中的代码拆分有疑问。假设您有一些名为 page1、page2 等的组件,并且还有一个 pages 文件,该文件使用React.lazy导出页面组件,并且您将 app 文件作为呈现这些页面的根组件。

页面文件:

应用程序文件:

当我在 react 中尝试这种设置时没有问题,并且 React 成功呈现页面并为所有页面创建多个块,但我不确定这种方法。我在代码拆分方面做得对吗?

0 投票
0 回答
575 浏览

javascript - 使用 React Router v6,Suspense 回退只需要很少的时间

在我的项目中,我使用 react-router 和 Suspence 来渲染多个惰性页面。LoadingSpinner 的唯一问题 id 是 Suspence 组件的后备道具,当您从一个页面转到另一个页面时,它仅加载 0.2 毫秒。这个持续时间很短,甚至肉眼都看不到

App.js 代码:

如何确保它具有最短持续时间?

0 投票
1 回答
61 浏览

reactjs - 如何在 React 中将 useEffect 与 Suspense 一起使用?

您好,我想在页面加载时自动聚焦输入。我必须使用 Suspense,因为我使用的是 i18n。我有自动对焦代码,但效果不佳。

当我消除悬念时,我的代码运行良好。但我需要 i18n 的悬念。我怎样才能解决这个问题?

0 投票
2 回答
56 浏览

reactjs - 如何为 React.lazy 组件键入自定义的“预加载”方法?

当尝试preload()为组件实现方法时React.lazy(),典型的模式看起来像,

以后可以使用,例如,

但是,第一个片段第 3 行的赋值会导致 TS 错误,

Property 'preload' does not exist on type 'LazyExoticComponent<T>'.

我一直在玩declare,但未能成功消除错误。该方法应该使用什么类型preload()

0 投票
0 回答
64 浏览

reactjs - 如何检测反应并发模式?

如何检测应用程序中当前使用的 React(稳定/发布)版本是否支持并发模式?假设您正在编写一个库,该库应针对多个反应版本,并且仅在相关时才添加并发功能。

我正在做,return typeof React.useTransition === "function"但我对此犹豫不决。

提前致谢。

0 投票
1 回答
149 浏览

reactjs - 模块“react”没有导出成员“SuspenseList”。TS2305

我正在尝试学习 React 18 中的一些新功能,例如SuspenseListand newuseId钩子,但我似乎一遍又一遍地遇到同样的错误:

这就是我的 package.json 的样子:

我现在不知道该怎么做,因为我已经安装了 React 18 的 RC 版本,根据工作组 GitHub 讨论板,它应该是最新的。

0 投票
1 回答
53 浏览

reactjs - React 18:当 Suspense 完成 Promise 时执行代码

useTransition当从完成返回时,我希望能够改变我自己的状态。也就是说,目前,在下面的示例中,isPending从 true 切换到 false,但这还不够。我希望能够在该更改上执行代码。

也就是说,在下面的示例中,我希望可以做一些类似的事情useEffect,并在挂起的事件发生更改时从执行返回的代码startTransition,但这不起作用。

还有其他选择吗?

0 投票
4 回答
130 浏览

reactjs - 使用 React 18 和 suspense,如何显示特定错误,而不仅仅是在 ErrorBoundary 中回退

我有一个像这样结构的组件,我ErrorBoundary包装了我的Suspense元素。

MyList组件包括一个SWR数据获取钩子,如下所示:

我的 fetcher 方法抛出如下错误:

当错误发生时,我不知道如何让我的 UI 显示抛出的值(即 MyError 类中的内容)