react 错误/文档/问题:处理中断的暂挂边界

bakd9h0s  于 2022-10-28  发布在  React
关注(0)|答案(7)|浏览(236)

在组件树的某些部分可能会发生水化并变得难以处理,而子组件仍处于挂起状态的情况下,是否存在有关如何处理这些情况的文档/指南?
示例:https://simple-remix-deferred-demo.fly.dev/
绿色:水合
红色:已暂停

单击页面水合部分中的任一“Link”元素,将触发重新呈现,并导致暂停边界在完成之前接收更新:https://reactjs.org/docs/error-decoder.html/?invariant=421这不是一个问题,在应用程序的功能方面,因为我是在假设父更新的交互式组件将是预期的,我的意思是,为什么他们不呢?
所以我想我有几个问题:
1.为什么react会记录此错误?这是一个 * 实际 * 错误吗?
1.是否有我想不出的暗示会导致你的平均裸骨悬念使用下降,这就是这个消息存在的原因?
1.如果您希望在边界仍处于挂起状态时进行更新,是否有文档化的方法来处理此问题以避免出现此消息?

eanckbw9

eanckbw91#

有没有一个沙箱复制这个?理想情况下没有一个框架。

3pvhb19x

3pvhb19x2#

我可以给你拿一个。很简单:
SSR和挂起。在挂起边界解决之前,水合父组件并设置状态。

rlcwz9us

rlcwz9us3#

给你:https://github.com/jacob-ebey/react-suspense-reproduction
步骤:

  • 无性繁殖
  • x1m0n1x
  • npm start
  • 当边界暂停时,加载页面并单击按钮以查看控制台中消息
j8yoct9x

j8yoct9x4#

@gaearon,友好的ping这个,如果需要的话很乐意提供更多的信息。这对我来说似乎是一个常见的情况,我很想弄清楚如何处理这个问题,这样用户就不会在终端上看到一个可怕的错误消息。

w46czmvw

w46czmvw5#

对于<Suspense>,我们是否需要另一个等价的suppressHydrationWarning

2cmtqfgy

2cmtqfgy6#

为了繁荣,有两种方法可以抑制我所知道的警告:
1.使用开始过渡:tom-sherman/react-suspense-reproduction@24388fc的最大值
1.记住暂停边界,以便状态更新不会导致其重新渲染:tom-sherman/react-suspense-reproduction@ebcdeb6

bz4sfanl

bz4sfanl7#

#24082开始
我们还可以更进一步,通过在根节点实现选择性水化,允许更高优先级的更新(尽管不是同步),就像我们对Suspense边界所做的那样:中断当前的渲染,尝试以比更新稍高的优先级进行水合,然后继续渲染更新。我还没有实现这个,但是我已经构建了代码,预计稍后会添加这个。
你的复制品会不会击中这个未实施的案例?

相关问题