在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 如何配置babel,才能使得es6 的class中可以使用箭頭函數(shù)?

如何配置babel,才能使得es6 的class中可以使用箭頭函數(shù)?

如題,自己沒事找事想在es6的class中使用箭頭函數(shù)。(其實(shí)是想在react中組件類中使用箭頭函數(shù),這樣就不用每個(gè)事件處理方法去bind(this)了)。

clipboard.png

clipboard.png

但是遇到代碼報(bào)錯(cuò)問題讓我非常頭疼,我按照網(wǎng)上找的資料的說法大致對babel對配置做了如下處理,如presets選項(xiàng)增加stage-3,增加plugin等,可是報(bào)錯(cuò)問題還是存在。

請教各位有沒有可以實(shí)現(xiàn)的解決方案?

回答
編輯回答
我以為

babel只負(fù)責(zé)轉(zhuǎn)義!所以并非babel沒用,這個(gè)只是編輯器語法檢測報(bào)錯(cuò)了。

我所用的webstorm,需要設(shè)置語法環(huán)境。你可以查一下你的編輯器,看下哪里可以將語法設(shè)置為ES6 or react

clipboard.png

2017年3月10日 16:21
編輯回答
萌小萌

你大括號后面差個(gè)逗號

2017年7月3日 03:05
編輯回答
你好胸

是我寫法上的問題,應(yīng)采用這樣的寫法,函數(shù)名后面跟=而不是:

class A {
  a = () => {}
}

此外,webpack中babel也得做配置,增加一個(gè)plugin,否則項(xiàng)目編譯階段仍然報(bào)錯(cuò)。
clipboard.png

2018年1月7日 23:26
編輯回答
陌璃

第一張圖應(yīng)該是 vsc 編輯器自己的檢查,在設(shè)置里面關(guān)掉就好,第二張圖貌似代碼寫錯(cuò)了吧,ES6 里面 class 往實(shí)例上面加方法語法是:

class A {
  a = () => {}
}

往構(gòu)造函數(shù)上面加靜態(tài)方法是用 static 關(guān)鍵詞,貌似不支持用冒號的寫法。

如果還有問題可以貼一下 .babelrc 的配置

2017年9月16日 11:05
編輯回答
糖豆豆

首先,你要知道在class中寫箭頭函數(shù)作為屬性是react的語法。

基于此,如果你想阻止eslint的報(bào)錯(cuò),你需要調(diào)整eslint對于react語法的檢查。

這里用到babel-eslint

只需兩步就可以了:

  1. npm i babel-eslint -D / yarn add babel-eslint -D
  2. 在你的.babelrc或package.json配置的babel內(nèi)加入 "parser": "babel-eslint",

希望能幫到你

2018年2月8日 08:51