无法在 React 组件类中使用 Arrow 函数 [重复]

2023-12-23

我已经开始了一个项目,我在前端使用 React JS,在后端使用 Node js。我使用 webpack 来打包 JS 文件。我使用了 babel 以及其他必要的东西。当我在 React 类中使用箭头函数时,它会出现语法错误,例如:

模块构建失败:语法错误:意外的标记

但我可以在节点中使用箭头函数,没有任何问题。

这是我的 webpack 配置文件:

import path from 'path';
import webpack from 'webpack';
import 'react-hot-loader/patch';

export default{
  devtool: 'eval',
  entry:[
    'react-hot-loader/patch',
    'webpack-hot-middleware/client?reload=true',
    path.join(__dirname,'client/index.js')],
  output:{
    path:'/',
    publicPath:'/'
  },
  plugins:[
    new webpack.NoErrorsPlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin()

  ],
  module:{
    loaders:[
      {
        test:/\.js$/,
        include:path.join(__dirname,'client'),
        loaders: ['react-hot-loader/webpack', 'babel']
      },
      {
        test: /\.jpe?g$|\.gif$|\.svg$|\.png$/i,
        loader: 'file-loader?name=[name].[ext]'
      }
    ]
  },
  resolve:{
    extension:['','.js']
  }
}

我的反应文件:

class mapSidebar extends React.Component{

    constructor(props,context){
       super(props,context);
       this.state = {
         dataSource: []
       };
         this.handleUpdateInput = this.handleUpdateInput.bind (this);
    }

    handleUpdateInput = (value) => {
      this.setState({
        dataSource: [
          value,
          value + value,
          value + value + value,
        ],
      });
    };

    render(){
      return(
        <div>
          <Paper zDepth={2}>
            <div>Hello</div>
            <div>
                <AutoComplete
                  hintText="Type anything"
                  dataSource={this.state.dataSource}
                  onUpdateInput={this.handleUpdateInput}
                />
          </Paper>
        </div>
      );
    }

}

export default mapSidebar;

如何解决这个问题?


造成问题的不是箭头函数。类属性 https://github.com/tc39/proposal-class-public-fields不是 ES6 规范的一部分。

handleUpdateInput = (value) => {
  // ...
};

如果您希望能够转换此代码,则需要添加类属性 babel 插件 https://babeljs.io/docs/plugins/transform-class-properties/.

或者,此转换作为 Babel 的一部分提供阶段 2 预设 https://babeljs.io/docs/plugins/preset-stage-2/.

使用带有类属性的箭头函数可确保始终使用组件作为值来调用该方法this,这意味着这里的手动重新绑定是多余的。

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

无法在 React 组件类中使用 Arrow 函数 [重复] 的相关文章

  • 如何正确地将节点从引用传递到上下文?

    我正在尝试将节点从引用传递到上下文 但是因为我在第一次渲染后没有重新渲染 所以传递的节 点是null 我考虑了两种变体 但我认为它们不是最好的 To pass ref代替ref current 但在用例中 我将被迫使用类似的东西contex
  • 鼠标移动时画布拖动

    我正在尝试构建一个可以使用鼠标移动拖动的画布 我做了一些我无法理解的错误 因为一开始似乎有效 然后出现了一个增量错误 使画布移动得太快 考虑以下代码 window onload function var canvas document ge
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 如何使用 Nextjs/React 将 JSON 对象导出到 Excel?

    我有一个检索 json 对象的端点 如下所示 data id 1 temaIndicador Indian codigo 001 observaciones Interactions Specialist tertiary Regional
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • Permissions-Policy 标头错误:无法识别的功能:“interest-cohort”

    我才刚刚开始反应 我的页面在本地主机上运行良好 现在我正尝试在 github 上托管我的页面 我使用了 npm run deploy 并托管 这是我的 package json 现在 当我尝试访问我的页面时 我遇到了错误 第一个警告最让我担
  • 如何跨多个 React Redux 组件使用 requestAnimationFrame 实现游戏循环?

    努力思考最好的解决办法 我可以使用递归调用requestAnimationFrame有一个游戏循环 export interface Props name string points number onIncrement gt void o
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • JS:修改 JS 对象中的值/对

    我正在尝试找出修改对象的最佳方法 而无需三次写出类似的对象 所以我有这三个对象 var object1 start start end end type 1 var object2 start start end end type 2 va
  • 当 Chrome 中嵌套滚动中的数据更改时防止页面滚动

    我在页面中有一个固定大小的元素 带有 溢出 滚动 其内容经常更改 我预计该元素内部发生的更改会影响该元素的滚动 但不会影响页面滚动 但是当这个元素位于页面顶部时 页面本身开始滚动 我怎样才能防止这种情况发生 要重现此行为 我在 chrome
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • 具有多个列表的 for 循环

    我在 terraform 中有 2 个变量列表 需要使用两个列表并创建资源 我拥有的 locals bucket name SRE Engg QA access type Private Public resource oci object
  • 逗号语法:语句中悬挂逗号背后的基本原理是 SyntaxError

    在 Python 中 变量或文字后跟一个悬挂逗号是一个 tuple 1 1 以及一系列逗号分隔的变量 文字 无论它们后面是否带有悬挂逗号 也是一个tuple 1 2 1 2 1 2 1 2 然而 在可调用 函数内部 这种语法的处理方式有所不
  • 谷歌应用程序引擎中的数据库设计

    我正在设计一个基于待办事项列表的简单项目 这个想法是以等级方式定义项目下的任务 没有工作流程 只需 任务已完成 或不需要 即每个任务都有多个任务 并且该任务可能有其他多个任务 如果该项目下的所有任务都已完成 则可以说该项目已完成 我曾想过使
  • PHP - 相互比较多维子数组并根据相似度阈值进行合并

    简介 此问题已于 2018 年 5 月 27 日更新 我有 1PHP多维数组 包含6个子数组 每个子数组包含20个子子数组 每个子数组又包含2个子子数组 一个是字符串 header 另一个是未指定数量的关键字 keywords 我希望将 1
  • Java工厂方法缓存

    我必须开发一些类似生活游戏的东西 为此 我有一个名为CellPosition具有x and y字段 为了有效地使用内存 我想使用某种工厂方法 CellPosition at int x int y 这将返回一个实例CellPosition
  • 无法加载插件 caching_sha2_password:/mariadb19/plugin/caching_sha2_password.so:无法打开共享对象文件

    我正在尝试 dockerise 我的 Django 应用程序 docker compose yml version 3 8 services db image mysql 8 command default authentication p
  • WPF如何让UserControl继承Button?

    我创建了一个由几个省略号和标签组成的用户控件 我把它很好地添加到另一种形式中 事情看起来非常时髦 然后我开始添加一些事件处理程序 发现我制作的控件没有公开 Click 事件 哎呀 很容易修复 对吧 只需回到我制作的 UserControl
  • Eclipse:自动终止(java)

    当我在Eclipse中用java编写代码并第二次运行它时 第一个进程仍在运行 例如 当我编写一个带有一些打印的无限循环时 运行一次然后再次运行 它会从第一次和第二次运行中打印 另外 Eclipse 变得越来越慢 有没有办法在重新运行时自动终
  • 如何在一个 Github Actions Docker 中运行多个命令

    在一个命令中运行多个命令的正确方法是什么action 例如 我想运行一个 python 脚本action 在运行此脚本之前 我需要安装requirements txt 我可以想到几个选择 创建一个Dockerfile用命令RUN pip i
  • 我可以将函数名称存储在最终的哈希图中以供执行吗?

    我正在构建一个管理控制器 其工作方式类似于 Flex 4 5 中的终端模拟器 服务器端是Tomcat服务器上的Red5 使用Java编程语言 当用户在其文本输入中输入命令时 该命令会发送到 red5 在 red5 中 我检查该命令是否存在
  • 如何替换 WiX 安装过程中使用的计算机 + 磁盘图标?

    是否可以使用 WiX 3 5 替换 msiexec 在安装过程中显示的古老计算机 磁盘映像 如果是这样怎么办 我目前没有使用 WixUI 我愿意使用它 只要我能获得简单的 零点击的安装体验 我已经尝试了此页面上建议的所有 WixVariab
  • Screeps 分数/模块已重置

    昨天我在第一张地图上的分数是1800 现在没有更多分数了 这个分数怎么会被删除呢 此外 我的脚本 模块也被删除了 幸运的是我将它们保存在本地 是否依赖cookies什么的 发生了什么 在模拟室中 您的模块和分数存储在浏览器中localSto
  • 作为图形执行的一部分,动态捕获 TensorFlow 中的异常

    例如 这QueueBase dequeue函数可以提高OutOfRangeError我将从Python中收到的异常Session run称呼 有什么方法可以捕获图表内的异常 类似于tf cond 例如 就像是 result tf on ex
  • 我无法使 Highcharts phantomJs 导出服务器工作

    非常感谢 我想设置 phantomjs Highcharts 导出服务器 它应该接受 json 选项作为输入和输出 jpeg 图像文件 这是我所做的 我从此存储库下载服务器端 js 代码 https github com highslide
  • 使用 jQuery 从 HTML 中删除数据属性

    似乎无法让这个工作 我有一个隐藏某些链接的页面 加载 DOM 后 我使用 jQuery 来切换其中一些元素 这是通过使用数据属性来驱动的 如下所示 div class d btn div class hidden button 然后 我有代
  • 如何计算特定国家的利润中位数

    大家好 我是 R 新手 我正在尝试计算数据框中特定国家 地区的利润中位数 我尝试了以下方法 但它对我不起作用 data Forbes2000 package HSAUR median Forbes2000 sales country Uni
  • switch case 中的枚举引用

    enum Color RED GREEN BLUE class SwitchEnum public static void main String args Color c Color GREEN switch c case RED Sys
  • 该服务器的证书无效

    我知道如果我使用以下 nsurlconnectiondelegate 它将被修复 连接 willSendRequestForAuthenticationChallenge 连接 canAuthenticateAgainstProtectio
  • Java I/O 类和性能

    阅读 Java 思维 第四版 我对 I O 操作性能有一些疑问 我读到最好将 InputStream 对象 包装 在 BufferedInputStream 中 但在我看来 我看不出有任何区别 即文件操作不是已经缓冲了吗 文件缓冲写入有什么
  • 无法在 React 组件类中使用 Arrow 函数 [重复]

    这个问题在这里已经有答案了 我已经开始了一个项目 我在前端使用 React JS 在后端使用 Node js 我使用 webpack 来打包 JS 文件 我使用了 babel 以及其他必要的东西 当我在 React 类中使用箭头函数时 它会