如何使用箭头函数(公共类字段)作为类方法?

2023-12-25

我是在 React 中使用 ES6 类的新手,之前我一直将我的方法绑定到当前对象(如第一个示例所示),但是 ES6 是否允许我使用箭头将类函数永久绑定到类实例? (作为回调函数传递时很有用。)当我尝试像使用 CoffeeScript 一样使用它们时,我收到错误:

class SomeClass extends React.Component {

  // Instead of this
  constructor(){
    this.handleInputChange = this.handleInputChange.bind(this)
  }

  // Can I somehow do this? Am i just getting the syntax wrong?
  handleInputChange (val) => {
    console.log('selectionMade: ', val);
  }

这样如果我通过了SomeClass.handleInputChange到,例如setTimeout,它将作用于类实例,而不是window object.


您的语法稍有偏差,只是在属性名称后面缺少一个等号。

class SomeClass extends React.Component {
  handleInputChange = (val) => {
    console.log('selectionMade: ', val);
  }
}

这是一个实验性功能。您需要在 Babel 中启用实验性功能才能进行编译。是一个启用实验的演示。

要使用 babel 中的实验性功能,您可以从以下位置安装相关插件here https://babeljs.io/docs/plugins/。对于此特定功能,您需要transform-class-properties plugin http://babeljs.io/docs/plugins/transform-class-properties/:

{
  "plugins": [
    "transform-class-properties"
  ]
}

您可以阅读有关类字段和静态属性提案的更多信息here https://github.com/tc39/proposal-class-fields


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

如何使用箭头函数(公共类字段)作为类方法? 的相关文章

  • 使用 xhr-mock 测试 AJAX 函数失败

    我正在尝试从我的中测试以下功能network js export function post data return new Promise function resolve reject need to log to the root v
  • 函数作为参数(带参数)——JavaScript

    如果我有一些 OO javascript 看起来像这样 function someFunction a b c do something with a b and c function theLoader loadFunction some
  • 如何查询和过滤 Firebase 实时数据库 [重复]

    这个问题在这里已经有答案了 我想从数据库中获取所有人员 其中名字和姓氏由用户输入给出 到目前为止 这是我的代码 admin database ref persons orderByChild Firstname equalTo firstN
  • Javascript图像编辑插件

    在哪里可以找到 Javascript 或 jQuery 图像编辑器插件 用户可以单击图像进行编辑 并且该插件允许他们进行裁剪 调整大小 旋转 翻转等 Pixastic http pixastic com lib 不再活跃 和CamanJS
  • Javascript 函数指针,以参数作为函数中的参数

    不确定标题的措辞是否正确 或者是否有更好的表达方式 但我认为还可以 无论如何 到目前为止我了解以下内容 a b a b c foo 其中 foo 是在其他地方定义的函数 不接受任何参数 只会导致函数 a b 使用上述参数运行 然后可以在函数
  • 应该使用encodeURI吗?

    javascript 的encodeURI 函数有任何有效用途吗 据我所知 当您尝试发出 HTTP 请求时 您应该 完整的 URI 您想要放入 URI 中的某些片段 可以是 unicode 字符串或 UTF 8 字节序列 在第一种情况下 显
  • 在设置后用 Javascript 替换 'var' css 属性

    我有一个元素 其上设置了 var 属性 如下所示 div class divwithbackground div CSS divwithbackground after background image var page header se
  • React 无法识别 DOM 元素上的 `isActive` 属性 - styled-components

    我有以下内容svg我传递道具的组件 import React from react export default props gt
  • 无法使用 Jade 模板包含相对路径文件

    当我尝试将文件包含在同一文件夹中时 收到以下错误 the filename option is required to use include with relative paths 有两个文件 索引 jade 项目列表 jade cont
  • Sequelize 关联 - 请改用 Promise 风格

    我正在尝试将 3 张桌子连接在一起Products Suppliers and Categories然后排SupplierID 13 我读过了如何在sequelize中实现多对多关联 https stackoverflow com a 25
  • 按 Enter 键提交消息?

    我正在开发一个基于本教程使用 Meteor 构建的聊天应用程序 http code tutsplus com tutorials real time messaging for meteor with meteor streams net
  • Durandal SPA 与打字稿有关的问题

    我使用 TypeScript 1 8 将我的 durandal SPA 应用程序从 VS 2012 更新到 VS 2015 它将生成 JavaScript ECMA5 我解决了所有构建错误 但我无法修复一个名为 return 语句只能在函数
  • jQuery 在附加元素后立即返回 div 元素的高度 0

    我有一个浮动 div 最初没有内容 我使用 jQuery 将一组元素附加到 div 然后立即调用原始 div 的 height 方法 我添加的元素在样式表中具有定义的最小高度 而浮动 div 则没有 问题是 当我在原始 div 上调用 he
  • 如何使用 JavaScript 压缩文件?

    有没有办法使用 JavaScript 来压缩文件 例如 在雅虎邮件中 当您选择下载电子邮件中的所有附件时 它会被压缩并下载到单个 zip 文件中 JavaScript 能够做到这一点吗 如果是这样 请提供一个编码示例 我发现这个图书馆叫js
  • 如何使用javascript将视频文件转换为字符串?

    我在 signalR 工作 我想通过将视频文件拆分为不同部分来将视频文件从一个客户端发送到另一个客户端 我已经通过分割图像源数据发送图像并在另一个客户端上接收该图像 document getElementById fileUpload ad
  • React Native 中 fontAwesome 图标的圆形轮廓

    我想使用 fontAwesome 图标 使其位于圆圈的中间 我想将它用作一个图标项 我读到我们可以将它与圆形图标一起使用并将其放置在其中 但我无法使其工作 import IconFA from react native vector ico
  • 如何在 Node.js 中打开 Windows-1255 编码文件?

    我有一个 Windows 1255 希伯来语 编码的文件 我希望能够在 Node js 中访问它 我尝试使用打开文件fs readFile 它给了我一个Buffer我无能为力 我尝试将编码设置为Windows 1255 但这没有被识别 我还
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 如何在 getStaticPaths 内添加 params 值数组

    我有一个页面 其结构如下 read slug number 我想要得到slug每个对应的值number in the getStaticPaths这是代码 export async function getStaticPaths const
  • 如何将函数导入到Vue组件中?

    我正在尝试将单个函数导入到我的 Vue 组件中 我为我的函数创建了一个单独的 js 文件 randomId js exports randomId gt My function 在我的 Vue 组件中 我导入了 Random js let

随机推荐

  • 使用 PHP cURL 进行缓存

    我正在使用 PHP cURL 从另一个网站获取信息并将其插入到我的页面中 我想知道是否可以将获取的信息缓存在我的服务器上 例如 当访问者请求某个页面时 系统会获取该信息并在我的服务器上缓存 24 小时 然后 该页面将完全在本地提供 24 小
  • 在虚拟环境中将包安装到全局站点包中

    让我先声明我已阅读过pip 安装在全局站点包中而不是 virtualenv https stackoverflow com questions 20952797 pip installing in global site packages
  • PySpark - 按列的值拆分/过滤 DataFrame

    我有一个与此示例类似的 DataFrame Timestamp Word Count 30 12 2015 example 1 3 29 12 2015 example 2 1 28 12 2015 example 2 9 27 12 20
  • 跨 docker 容器共享内存

    如果使用 Java MQ 类 而不是 JTA 将 Websphere MQ 用作 XA 分布式事务 事务管理器 则 Java 应用程序和 WMQ 都需要驻留在同一主机上 有人告诉我这是因为共享内存被用作进程间通信机制 Java 应用程序和
  • 将 Iterator<(A,B)> 拆分为 Iterator 和 Iterator

    我想分割实现的对象的输出Iterator lt A B gt 分成两个实现的对象Iterator a and Iterator b 由于其中一个输出的迭代次数可能多于另一个 因此我需要缓冲Iterator lt A B gt 因为我不能依赖
  • 将 Patreon API 与 Flutter 应用程序链接

    我对使用 Flutter 很陌生 在没有帮助的情况下从未正确使用过 API 我想让我的应用程序免费 没有大量广告 所以我希望创建一个 Patreon 来支持它的维护 当在线寻找教程视频或任何可用于 Flutter 或我知道如何使用的其他语言
  • 解释错误:“构造函数……无法应用:实际长度和形式长度不同”

    请帮我修复这个错误 类 C10h1 CollegeMember 中的构造函数 CollegeMember 不能 适用于给定类型 必需 java lang String java lang String 发现 没有参数 原因 实际论证和形式论
  • 在 Javascript 中增加 CSS padding-top 属性

    我有一个 CSS 定义为div myDiv padding top 20px padding bottom 30px 在 JS 函数中 我想增加padding top by 10px function DoStuff var myDiv d
  • Pandas 中的固定宽度文件操作

    我有一个具有以下格式的固定宽度文件 5678223313570888271712000000024XAXX0101010006461801325345088800 0784001501 25abc yahoo com 56782233246
  • Spring Mongodb使用DBRef关联获取数据

    我有一个带有嵌套 dbref 地址的零售商类 我想根据属于地址类一部分的城市获取零售商 但我遇到了以下错误 org springframework data mapping model MappingException 路径无效 参考地址
  • 在 Doctrine 中向当前表添加虚拟列?

    我正在使用 Doctrine 1 2 和 Symfony 1 4 假设我有一个用户模型 其中有一个配置文件 这些定义为 User id username password 创建时间 更新时间 Profile id user id 名 姓 a
  • 网络基础设施发现

    我想执行彻底的 LAN 设备发现 以便我可以创建一个与所附图表类似的图表 但包含 IP 和 MAC 地址等附加信息 我尝试过 Torry 的代码 type PNetResourceArray TNetResourceArray TNetRe
  • java.time.format.DateTimeParseException:无法在索引 21 处解析文本

    我得到的日期时间值为 created at 2012 02 22T02 06 58 147Z Read only The time at which this task was created 这是由 Asana 给出的API https
  • 更改 MVC4 上的基本视图类型

    我从下面的链接读到了一篇关于更改 MVC 上的基本视图类型的文章 http haacked com archive 2011 02 21 changing base type of a razor view aspx http haacke
  • 通过main中的内部类对象访问外部类变量

    class Host int x 2 class Helper int x 7 public static void main String args Host ho new Host Helper he ho new Helper Sys
  • Power BI (Power Query) Web 请求导致“CR 必须后跟 LF”错误

    当您使用Web Page Web Contents url 函数从网页中读取表格时 某些网站会因换行不一致而导致错误 DataSource Error 服务器违反了协议 部分 响应标头详细信息 CR 后必须跟 LF 似乎没有任何选项可以传递
  • Ember-data 延迟加载与“links”属性的关联

    我有一位模范老师 他有很多学生 模型定义如下 App Teacher DS Model extend email DS attr string students DS hasMany student App Student DS Model
  • Spring MVC 和 JSP:如何将参数从控制器传递到 JSP?

    我有 2 个 JSP 页面 在第一个页面中我有输入文本表单 我想显示在另一个 JSP 页面中插入的值 使用 Spring MVC 将要传输到下一页的变量放在隐藏字段中 将字段放在与您进入下一页相同的表单中 然后通过 JSTL 获取参数 这是
  • Visual Studio 诊断工具不显示进程内存

    我有一个 VB NET 应用程序 带有 C 库 随着时间的推移 它会消耗大量内存 最终应用程序耗尽内存 我对使用这个词持谨慎态度leaking因为 GC 不应该允许内存泄漏 但也许某处有一个大的 NET 对象 如果是这样我需要识别它 不过
  • 如何使用箭头函数(公共类字段)作为类方法?

    我是在 React 中使用 ES6 类的新手 之前我一直将我的方法绑定到当前对象 如第一个示例所示 但是 ES6 是否允许我使用箭头将类函数永久绑定到类实例 作为回调函数传递时很有用 当我尝试像使用 CoffeeScript 一样使用它们时