這是從table example從陣營工具箱(可以使用標籤)這個類聲明中使用的Javascript的形式是什麼?
class TableTest extends React.Component {
state = { selected: [], source: users };
handleSelect = (selected) => {
this.setState({selected});
};
render() {
return (
<Table
model={UserModel}
onSelect={this.handleSelect}
selectable
multiSelectable
selected={this.state.selected}
source={this.state.source}
/>
);
}
}
這不會的WebPack /巴貝爾編譯我,但下面的「正確」的JavaScript並。這是JSX符號和一個標誌,我沒有像我想的那樣對JSX進行轉譯?
class TableTest extends React.Component {
constructor() {
super();
this.state = { selected: [], source: users };
this.handleSelect = (selected) => {
this.setState({selected});
};
}
render() {
return (
<Table
model={UserModel}
onSelect={this.handleSelect}
selectable
multiSelectable
selected={this.state.selected}
source={this.state.source} />
);
}
}
的WebPack /通天扼流圈:
ERROR in ./src/client/app/app.jsx
Module build failed: SyntaxError: Unexpected token (21:8)
19 |
20 | class TableTest extends React.Component {
> 21 | state = { selected: [], source: users };
感謝。我需要安裝一個舞臺預設(階段0似乎標準,但我不知道爲什麼,我認爲這是危險的),並將其添加到.babelrc。 –
@bp .:舞臺預設對應於[提出新的JS語言特性的過程中的不同階段](https://github.com/tc39/proposals)。第0階段是全新的想法,第4階段的功能肯定會包含在下一個JavaScript版本中。很顯然,很多早期的提案會被拋棄或拒絕,所以這是一種折衷 - 如果你處於第0階段的預設,你會得到*所有的東西*,但有可能最終導致某些功能非標準的將來。 –