如何将 Material-UI 连接到 Meteor / React 项目?
How to connect Material-UI to Meteor / React project?
我试图从 Material-UI 示例中连接 LeftNav 菜单;但是,我卡住了。
这里是错误:
While building for web.browser:
imports/ui/App.jsx:14:2: /imports/ui/App.jsx: Missing class properties transform.
这是我的代码:
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';
// App component - represents the whole app
export default class App extends Component {
constructor(props) {
super(props);
this.state = {open: false};
}
handleToggle = () => this.setState({open: !this.state.open});
render() {
return (
<div>
<RaisedButton
label="Toggle LeftNav"
onTouchTap={this.handleToggle}
/>
<LeftNav open={this.state.open}>
<MenuItem>Menu Item</MenuItem>
<MenuItem>Menu Item 2</MenuItem>
</LeftNav>
</div>
);
}
}
尝试以下操作(如果我是你,我会通过 npm install --save material-ui@next
安装 material-ui 的测试版)。
import React from 'react';
import { LeftNav, MenuItem, RaisedButton } from 'material-ui';
// App component - represents the whole app
export default class App extends Component {
constructor(props) {
super(props);
this.handleToggle = this.handleToggle.bind(this);
this.state = { open: false };
}
handleToggle() {
this.setState({ open: !this.state.open });
}
render() {
return (
<div>
<RaisedButton
label="Toggle LeftNav"
onTouchTap={this.handleToggle}
/>
<LeftNav open={this.state.open}>
<MenuItem>Menu Item</MenuItem>
<MenuItem>Menu Item 2</MenuItem>
</LeftNav>
</div>
);
}
}
问题已解决,我刚更新到内测版material-ui
那是因为您正在使用 ECMAScript 规范的 stage-1
功能。您必须在编译器中安装适当的插件。
这里有一些关于如何安装 Babel 插件的说明。
(1) 在终端的项目文件夹中,使用以下命令安装 babel-preset-stage-1
meteor npm install --save-dev babel-preset-stage-1
(2) 然后转到项目文件夹中的 .bablerc
文件(如果没有,请创建它)并根据以下 顺序更新预设数组 ,
"presets": ["env", "react", "stage-1"]
再试一次,如果还有问题请告诉我。
我试图从 Material-UI 示例中连接 LeftNav 菜单;但是,我卡住了。
这里是错误:
While building for web.browser: imports/ui/App.jsx:14:2: /imports/ui/App.jsx: Missing class properties transform.
这是我的代码:
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';
// App component - represents the whole app
export default class App extends Component {
constructor(props) {
super(props);
this.state = {open: false};
}
handleToggle = () => this.setState({open: !this.state.open});
render() {
return (
<div>
<RaisedButton
label="Toggle LeftNav"
onTouchTap={this.handleToggle}
/>
<LeftNav open={this.state.open}>
<MenuItem>Menu Item</MenuItem>
<MenuItem>Menu Item 2</MenuItem>
</LeftNav>
</div>
);
}
}
尝试以下操作(如果我是你,我会通过 npm install --save material-ui@next
安装 material-ui 的测试版)。
import React from 'react';
import { LeftNav, MenuItem, RaisedButton } from 'material-ui';
// App component - represents the whole app
export default class App extends Component {
constructor(props) {
super(props);
this.handleToggle = this.handleToggle.bind(this);
this.state = { open: false };
}
handleToggle() {
this.setState({ open: !this.state.open });
}
render() {
return (
<div>
<RaisedButton
label="Toggle LeftNav"
onTouchTap={this.handleToggle}
/>
<LeftNav open={this.state.open}>
<MenuItem>Menu Item</MenuItem>
<MenuItem>Menu Item 2</MenuItem>
</LeftNav>
</div>
);
}
}
问题已解决,我刚更新到内测版material-ui
那是因为您正在使用 ECMAScript 规范的 stage-1
功能。您必须在编译器中安装适当的插件。
这里有一些关于如何安装 Babel 插件的说明。
(1) 在终端的项目文件夹中,使用以下命令安装 babel-preset-stage-1
meteor npm install --save-dev babel-preset-stage-1
(2) 然后转到项目文件夹中的 .bablerc
文件(如果没有,请创建它)并根据以下 顺序更新预设数组 ,
"presets": ["env", "react", "stage-1"]
再试一次,如果还有问题请告诉我。