反义箭头函数在定义上未定义

时间:2018-02-24 17:05:12

标签: javascript reactjs arrow-functions

我有一个React项目。该项目使用默认配置create-react-app进行引导。我在第60行的类中定义了一个箭头函数:

handleClose = () => {
    this.props.history.push('/');
    window.location.reload();
}

但是在编译时会出现错误:

enter image description here

你能帮我解决这个问题吗?它说函数本身没有在60行定义,但我们只在那一行定义了该函数。请注意,这不是调用函数的问题。编译器为定义的所有箭头函数提供错误。

3 个答案:

答案 0 :(得分:0)

一个原因可能是javascript中默认不是语法。您需要通过安装stage-0stage-3预设为

来手动转换
npm install --save-dev babel-preset-stage-0

然后在.babelrc文件中将预设设置为:

{
  "presets": ["stage-0"]
}

您所包含的函数语法是提交给ECMAScript但尚未标准化的想法。

答案 1 :(得分:0)

可能会发生这种情况,因为您可能在调用时忘记使用this.functionName()。

HandleClick =()=> (console.log('clicked'));

这就是你可以调用该功能的方法: -

答案 2 :(得分:-3)

这可能是一个背景问题。您可能必须在构造函数中使用this.handleClose = this.handleClose.bind(this);将其绑定到您的类。