在reactjs中渲染第一个孩子或父母

2024-01-29

我是reactjs的初学者,并试图理解诸如父级和子级在reactjs中呈现什么以及如何呈现之类的概念

通过研究,我发现 React 首先渲染孩子,然后渲染父母,但我无法得到有效的答案,如何以及为什么?如果子进程无法渲染会发生什么,我猜在 React 16 中有一个名为 componentDidCatch 的生命周期,它可以处理子进程无法渲染的情况,那么在 React 16 之前有什么以及我们如何处理这些场景

请帮我


这取决于“子”和“渲染”的定义。

Child's render当子函数嵌套在父函数中时,首先调用该函数render因为父母需要使用孩子的结果render在它自己的render功能。如果孩子是childrenprop 它也首先渲染,因为父级需要将其接收为children prop.

在这种情况下,“子元素”是父元素中的嵌套元素render,首先渲染并安装子级,错误边界在Parent将能够捕获错误Child:

class Parent extends Component {
  componentDidCatch() {}
  render = () => <div><Child/></div>;
}

const Grandparent = props => <Parent/>;

在这种情况下,“孩子”是childrenprop,首先渲染一个孩子,但没有安装,因为children未使用,错误边界在Parent将无法捕获错误Child因为Child实际上是渲染在Grandparent:

class Parent extends Component {
  componentDidCatch() {}
  render = () => <div/>;
}

const Grandparent = props => <Parent><Child/></Parent>;

在反应 15 中,unstable_handleError生命周期钩子 https://reactjs.org/docs/error-boundaries.html#naming-changes-from-react-15用于创建错误边界并处理子项中的错误。它被替换为componentDidCatch在反应 16 中。

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

在reactjs中渲染第一个孩子或父母 的相关文章

随机推荐

  • Ruby 递归函数

    我在从递归函数返回值时遇到问题 def ask question question print question answer STDIN gets chomp ask question question if answer empty r
  • 来自 Google Play 的 SSL 警告

    收到来自 google play 的警告 我如何处理 WebViewClient onReceivedSslError 处理程序的不安全实现的 SSL 错误处理程序漏洞 请尽快解决此漏洞并增加升级后的APK的版本号 为了正确处理SSL证书验
  • Redux / RTK:为一个切片创建增强器?

    在我的 Redux RTK 存储中的一个切片中 要使该切片完成其工作 我所需要做的就是使用以下命令创建一个实体适配器createEntityAdapter https redux toolkit js org api createEntit
  • 类变量、范围解析运算符和不同版本的 PHP

    我在 codepad org 中尝试了以下代码 class test const TEST testing 123 function test testing TEST echo self testing class new test 它返
  • 如何编写自定义 POCO 串行器/解串器?

    我想为 FIX 消息编写一个自定义 NET 序列化器 反序列化器 与 XML 不同 基本上该消息的编码为
  • 使用用户名和密码登录后如何抓取网站

    我编写了一个网络爬虫 可以使用关键字抓取网站 但我想登录到我指定的网站并按关键字过滤信息 如何实现这一点 我发布了到目前为止我已经完成的代码 public class DB public Connection conn null publi
  • 如何在 React.JS 中添加 ClassName 并删除 onScroll 事件?

    我正在尝试制作一个粘性标题 可以根据他在页面上的位置更改其背景颜色 为此 我尝试将 className active 添加到我的样式组件 StyledHeader 中 当滚动位置 Y 高于 400 像素时 它将出现 低于 400 像素时消失
  • Selenium/Chrome/ChromeDriver 问题阻止 VPS 上的爬网(DevToolsActivePort 文件不存在)

    我购买了第一个 VPS 它运行 CentOS 7 64 位 在我今天开始使用这个 VPS 之前 我对 CentOS 7 的经验绝对为零 所以请对我宽容一点 当尝试使用 Scrapy 和 Selenium 抓取一些动态生成的内容时 脚本最终失
  • 重新发送 DocuSign 电子邮件

    是否有 API 端点允许我重新向收件人发送电子邮件 有时 用户可能无法收到或丢失包含签名链接的 DocuSign 电子邮件 我希望能够根据需要再次发送这些电子邮件 您可以使用 修改收件人 请求来触发向特定收件人重新发送电子邮件通知 PUT
  • Android 应用程序仅在 Eclipse 调试时因 SIGABRT Signal 6 崩溃

    我有一个应用程序可以在没有附加调试器的设备上完美运行 但是 我在Eclipse中调试时遇到了问题 当主线程挂起大约 10 秒或更长时间 例如遇到断点后 主线程会抛出 SIGABRT 显然来自 libc 我能想到的唯一解释是 主线程上的消息队
  • LINQ except 如何工作? [复制]

    这个问题在这里已经有答案了 可能的重复 LINQ 查找两个列表中的差异 https stackoverflow com questions 2404301 linq find differences in two lists 我想找到两个系
  • 抽象类设计:为什么不定义公共构造函数?

    看这里 抽象类设计 http msdn microsoft com en us library ms229047 aspx http msdn microsoft com en us library ms229047 aspx It say
  • HTML 表格,某些列自动调整,其他列固定宽度

    我正在尝试创建一个符合以下要求的表 表格宽度必须定义为 0 浏览器应根据列宽计算宽度 这是为了容纳列调整大小插件 某些列可能具有固定宽度 例如 50px 没有固定宽度的列必须自动适应内容 我创建了一个小例子 http jsfiddle ne
  • Rails:around_* 回调

    我已阅读以下文档http api rubyonrails org classes ActiveRecord Callbacks html http api rubyonrails org classes ActiveRecord Callb
  • 如何判断是否不再需要 git stash?

    是否可以判断是否已经应用了存储 因此不再需要 而无需执行git stash apply 假设我只使用一个分支 这可以通过使用来防止pop而不是apply当应用隐藏时 因此每次应用时都将其清除 但是 我有时使用 git stash 来保存正在
  • Apache:将 XAMPP/PHP 句柄从 application/x-httpd-php 更改为 application/x-httpd-php5

    我的目标是不再需要拥有 htaccess 文件的本地副本和实时副本 而是能够对本地 实时配置使用相同的单个 htaccess 文件 这将迫使我更好地理解配置服务器 我的本地服务器是我计算机上的 XAMPP 而我的实时服务器是共享 Web 主
  • Firebase jobdispatcher 未在指定窗口内触发

    我正在实施 Firebase Jobdispatcher 触发时间指定在 10 到 20 秒之间 这是我安排工作的代码 public static void scheduleCompatibleJob Context context Fir
  • QGraphicsView:禁用自动滚动

    我想要一个永远不会自动滚动的 QGraphicsView 类似 基本上 我的问题与http developer qt nokia com forums viewthread 2220 http developer qt nokia com
  • 从 C# 模态表单显示 VB6 模态表单时,事件不会触发?

    EDIT 我发现当VB6程序编译运行时 事件工作正常 没有问题 只有当代码在 VB6 IDE 中运行时 事件才会被破坏 这并不能完全解决问题 因为如果我们不能在IDE中调试的话 开发效率会非常低 但也许它可以让我们更深入地了解根本原因 我猜
  • 在reactjs中渲染第一个孩子或父母

    我是reactjs的初学者 并试图理解诸如父级和子级在reactjs中呈现什么以及如何呈现之类的概念 通过研究 我发现 React 首先渲染孩子 然后渲染父母 但我无法得到有效的答案 如何以及为什么 如果子进程无法渲染会发生什么 我猜在 R