2016-08-01 123 views
2

首先我用一口巴貝爾用箭頭功能

編譯我的browserify和巴貝爾束browerify造成語法錯誤

var bundler = browserify(filepath, args) 
    .plugin(watchify, {ignoreWatch: ['**/node_modules/**', '**/bower_components/**']}) 
    .transform(babelify, {presets: ['es2015', 'react']}) 

這是我所得到的,當我嘗試運行命令

SyntaxError: browser/components/table.js: Unexpected token (50:14) 
    48 | } 
    49 | 
> 50 | handleToggle =() => this.setState({ drawer: !this.state.drawer }) 
    |    ^
    51 | 
    52 | status(entry) { 
    53 |  if (entry.status === undefined) { 

除了箭頭函數之外的其他東西似乎都能正常工作,我無法弄清楚我在這裏做錯了什麼。

export default class TableHandler extends Component { 
constructor(props) { 
    super(props) 
    this.state = {drawer: true} 
} 
handleToggle =() => this.setState({ drawer: !this.state.drawer }) 
render(){ 
    return(
    <Drawer docked={false} width={300} open={this.state.drawer} /> 
) 
} 
} 

有更多的代碼,但我認爲這可能是後添加足夠

+0

你能發佈完整的代碼?它看起來像你想'handleToggle:()=>'如果這是一個對象屬性。 – elclanrs

+0

這是在類聲明中嗎?你不能在類中使用箭頭函數,因爲你只能在類聲明中設置方法而不是屬性,而且它不會有正確的'this'。 – gcampbell

+0

你應該添加通天預設-0級,檢查https://babeljs.io/repl/#?evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-0&code=class%20PostInfo%20extends%20React.Component%20 %7B%0A%09handleOptionsButtonClick%20%3D%圖20(e)%20%3D%3E%20%7B%0A%20%20%20%20this.setState(%7BshowOptionsModal%3A%20true%7D)%3B% 0A%20%20%7D%0A%7D與實驗值=真鬆=假規格=假 –

回答

3

好吧「階段1」我能夠用箭頭功能沒有任何問題。

.transform(babelify, {presets: ['es2015', 'stage-1', 'react']})