在 React 构造函数中调用 super() 会做什么?

2023-12-08

学习Reactdocs并遇到了这个例子:

class Square extends React.Component {
  constructor() {
    super();
    this.state = {
      value: null,
    };
  }
  ...
}

根据Mozilla, super 允许您使用this在构造函数中。还有其他原因需要使用独立的吗super(我知道super也允许您访问父类的方法)但是使用 React 是否还有其他仅调用的用例super()通过它自己?


super()将调用constructor of its parent班级。当您需要从父类访问某些变量时,这是必需的。

在 React 中,当你调用super有了 props,React 就会props通过整个组件可用this.props。请参阅下面的示例 2

without super()

class A {
  constructor() {
    this.a = 'hello'
  }
}

class B extends A {
  constructor(){
    console.log(this.a) //throws an error
  }
}

console.log(new B())

with super()

class A {
  constructor(props) {
    this.props = props
  }
}

class B extends A {
  constructor(props) {
    super(props)
    console.log(this.props)
  }
}

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

在 React 构造函数中调用 super() 会做什么? 的相关文章

随机推荐

  • 既然 Pandas .append() 方法已被弃用,那么它是一个很好的替代方法吗?

    我经常使用以下方法将单行附加到数据帧 我真正喜欢它的一件事是它允许您附加一个简单的 dict 对象 例如 Creating an empty dataframe df pd DataFrame columns a b Appending a
  • 如何在 jQuery 中解析这个无效的 JSON 字符串?

    我希望访问此数据属性中的各个数据位 div class location 当然 在 jQuery 中数据属性很容易获得 但字符串seems是非标准或无效的 JSON 形式 我尝试过 JSON parse 以及分割数组的基本 JS 方法 从各
  • 如何在 Redstone 拦截器中添加 CORS 标头?

    我正在尝试将 CORS 标头添加到传入请求中 但我注意到app response headers是一个不可变的映射并且app request response尽管它出现在文档示例中 但它并不存在 所以 对于OPTIONS我正在使用新的回复请
  • 添加滚动条到带有子图的图形

    我有一个 m 文件 应该在一张图中显示大约 20 个图像 所以现在我想知道如何向图中添加滚动条 目前 我的代码正在做这样的事情 figure Name Results for a 1 20 img result imread userinp
  • JavaScript 按单词断句

    将完整单词及其后续字符放入数组中的好策略是什么 Example 这是一句奇妙的话 Array 0 gt This 1 gt is 2 gt an 3 gt amazing 4 gt sentence 元素 0 3 将有一个后续空格 因为第
  • html 中隐藏输入的长度是否有最大大小?

    换句话说
  • 如何在 64 位进程中使用 32 位 COM 对象?

    我在 64 位机器上使用 Jacob JAVA COM Bridge 并希望从 32 位 DLL 加载 COM 对象 我怎样才能做到这一点 您需要在 32 位进程中托管 32 位 COM 对象 因此 要么您的整个应用程序必须运行 32 位
  • RFCOMM_CreateConnection - 已打开状态:2,RFC 状态:4,MCB 状态:5

    我正在编写一个 Android 应用程序 它使用 RFCOMM 通过蓝牙连接到设备 我使用 BluetoothChat 示例作为建立连接的基础 并且大多数时候一切都运行良好 但是 有时我无法重新连接 因为出现套接字已打开的消息 RFCOMM
  • 带日期的 Matplotlib - 更改每月数据的标签和刻度

    我有一个像这样的数据框 data list range 106 index pd period range 3 1 2004 12 1 2012 freq M df2 pd DataFrame data data index index c
  • Xcode 4.5 - 在我的设备上无线构建应用程序

    所以最近我的 iPhone 4 决定停止工作 我无法再使用 USB 将其连接到我的 Mac 或 PC 只有当我将它连接到墙上插座中的 USB 时它才会充电 并且我必须按下 30 针插入时连接器向上 但这是另一个问题 问题是我无法再在我的设备
  • 如何正确转换json数组?

    我对 vb net 有点生疏 我需要你的帮助来编码 monday start 09 00 end 18 00 breaks start 11 20 end 11 30 start 14 30 end 15 00 tuesday start
  • 如何将 Array[Seq[String]] 传递给 apache Spark udf? (错误:不适用)

    我在 scala 中有以下 apache Spark udf val myFunc udf userBias Float otherBiases Map Long Float userFactors Seq Float context Se
  • 当我尝试访问从数据库获取的对象的字段时出现 NoMethodError

    假设我有一个名为 Tweet 的模型 其中包含以下字段 1 id 2 内容 3 创建时间 4 用户id 5 original tweet id 现在假设我使用以下查询 tweet Tweet where id 64 查询此模型 并且此查询返
  • 如何一一连续加载URL

    我想一个接一个地加载URL 我使用字符串数组来存储URL 我的要求是 如果webview加载第一个url 它应该在页面启动时打印消息 页面开始 当页面完成时它应该显示 页面完成 第一个 URL 加载完成后 它应该加载第二个 URL 并继续相
  • 欧拉计划 8 - Haskell

    通过欧拉项目 我将我的解决方案与其他解决方案进行比较here 对于问题 8 我的代码生成了正确答案 通过网站上的校验和确认 23514624000 module Main where import Data List main do pri
  • 带有自签名证书的 VBA ServerXMLHTTP https 请求

    我正在使用 ServerXMLHTTP 对象对 excel 2007 vba 脚本发出一些 http 请求 但我需要连接到使用自签名 SSL 证书的 https 服务器 因此默认情况下我收到消息 证书颁发机构无效或不正确 有没有办法配置 S
  • 使用 C# 将 CSV 文件读入数组

    我正在尝试编写代码来引入 读取和分离 csv 文件 它有四列 没有标题 我已经在网上搜索了几个小时 但似乎没有人真正找到答案 所以我希望这里有人可以 读入后 我需要能够非常具体地拉出它 因为它是设计的一部分 提前致谢 你的问题有点模糊 但我
  • 重定向 Ascx 页面

    是否可以使用重定向 ascx 页面 Response Redirect 我的代码是 HttpContext Current Response Redirect postauthenticated employeereprintw2reque
  • 有什么好的 Winforms 向导库吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个好的 Winforms 向导 库 所见即所得编辑器是首选 但不是必须的 你几乎必须扮演自己的角色 这并不难 我在 30 分钟内写了一篇
  • 在 React 构造函数中调用 super() 会做什么?

    学习Reactdocs并遇到了这个例子 class Square extends React Component constructor super this state value null 根据Mozilla super 允许您使用th