我正在尝试将material-ui组件融入基于react-rocket-boilerplate搭建的项目中。
我遇到了以下错误:
这是Sidebar.js的内容:
(13:15)位置上的字符是紧跟在“handleToggle”后面的空格。
我可以使用以下语法代替:
我遇到了以下错误:
注意:Sidebar.js是material-ui文档网站上提供的第一个leftNav示例(“简单控制leftNav”)的精确副本,只更改了组件名称。[23:55:11] gulp-notify: [Compile Error] C:/react-rocket-boilerplate/app/js/components/Sidebar.js: Unexpected token (13:15) while parsing file: C:\react-rocket-boilerplate\app\js\components\Sidebar.js
这是Sidebar.js的内容:
import React from 'react';
import LeftNav from 'material-ui/lib/left-nav';
import MenuItem from 'material-ui/lib/menus/menu-item';
import RaisedButton from 'material-ui/lib/raised-button';
export default class Sidebar extends React.Component {
constructor(props) {
super(props);
this.state = {open: false};
}
handleToggle = () => this.setState({open: !this.state.open});
handleClose = () => this.setState({open: false});
render() {
return (
<div>
<RaisedButton
label="Simple Controlled LeftNav"
onTouchTap={this.handleToggle} />
<LeftNav open={this.state.open}>
<MenuItem>Menu Item</MenuItem>
<MenuItem>Menu Item 2</MenuItem>
</LeftNav>
</div>
);
}
}
以下是需要翻译的句子:
这是有问题的那一行:
handleToggle = () => this.setState({open: !this.state.open});
(13:15)位置上的字符是紧跟在“handleToggle”后面的空格。
我可以使用以下语法代替:
handleToggle() {
this.setState({open: !this.state.open});
}
这段代码解决了错误,但是当它被调用时,我无法访问"this"。
箭头函数在这种情况下编译时可以使用:
import React from 'react';
const Logo = () => (
<div className="logo">
Hello World
</div>
);
export default Logo;
如果需要,我很乐意提供任何其他信息的帮助,请告诉我。
另外...这些组件定义不同的语法/格式是否有一个术语?
npm install babel-preset-es2015 --save-dev
。 - hazardous