【发布时间】:2019-05-24 15:50:24
【问题描述】:
我正在尝试将我的反应组件的所有方法转换为箭头函数,这样我就不必事先绑定它们。但是每当我将方法转换为该语法时,反应就会开始出错。但是,匿名箭头函数可以正常工作。例如。 onClick={(e)=>{e.preventDefault()}} 工作正常。
我不确定,但我认为这可能是 react 或 eslintrc 配置的 vrsion 问题。
这是我的代码:
class MyComponent extends React.Component {
handleChangeStart = startDate => {
//this method is giving error for not being defined
}
handleChangeEnd(endDate) {
//method that doesn't gives error.
}
render(){
<DatePicker
id='start_dt'
className="border border-primary text-center"
selected={this.props.startDate}
selectsStart
startDate={this.props.startDate}
endDate={this.props.endDate}
onChange={this.handleChangeStart}
dateFormatCalendar={"MMM YYYY"}
dropdownMode={"select"}
/>
<DatePicker
id='start_dt'
className="border border-primary text-center"
selected={this.props.startEnd}
selectsEnd
startDate={this.props.startDate}
endDate={this.props.endDate}
onChange={this.handleChangeEnd}
dateFormatCalendar={"MMM YYYY"}
dropdownMode={"select"}
/>
}
}
这是我的 eslintrc 文件:
{
"ecmaFeatures": {
"jsx": true,
"modules": true
},
"env": {
"browser": true,
"es6": true,
"node": true
},
"parser": "babel-eslint"
}
编译失败。
./src/components/stats/Statistics.jsx 第 132 行:'handleChangeStart' 未定义 no-undef
搜索关键字以了解有关每个错误的更多信息。
编辑:
我在我的package.json 文件中将我的react-script 依赖版本从1.0.7 更改为3.0.1,并且错误消失了。谢谢大家的帮助。
【问题讨论】:
-
你能发布你的 babel 配置吗?
-
我认为你需要配置你的 webpack / babel 来编译 ES6 箭头函数。
-
将
@babel/preset-env添加到您的webpack.config.jspresets数组中。 -
@Nick Zuber,该怎么做。
标签: javascript reactjs eslint