我正在尝试将material-ui组件合并到一个由react-rocket-boilerplate构建的项目中。
我收到此错误:
[23:55:11] gulp-notify: [编译错误] C:/react-rocket-boilerplate/app/js/components/Sidebar.js: 解析文件时出现意外令牌 (13:15):C:\react-火箭样板\app\js\components\Sidebar.js
注意:Sidebar.js 是 material-ui 文档站点上提供的第一个 leftNav 示例(“SIMPLE CONTROLLED LEFTNAV”)的精确副本,仅更改了组件名称。
这是 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;
我非常乐意提供任何可能有帮助的其他信息,请告诉我。
另外......这些不同的组件定义语法/格式是否有一个术语?