1

我正在尝试向现有标签添加一个方法,在单击按钮时调用,我在开发构建时收到此错误。

https://github.com/wbkd/riotjs-startkit

./src/components/itemlist.tag 中的错误模块构建失败:SyntaxError: unknown: Unexpected token (15:15) });

addItem(e) {
    console.log('elo');
}

at Parser.pp.raise (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\location.js:24:13)
at Parser.pp.unexpected (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\util.js:82:8)
at Parser.pp.semicolon (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\util.js:69:81)
at Parser.pp.parseExpressionStatement (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\statement.js:427:8)
at Parser.parseExpressionStatement (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\plugins\flow.js:676:20)
at Parser.pp.parseStatement (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\statement.js:142:21)
at Parser.parseStatement (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\plugins\flow.js:655:22)
at Parser.pp.parseTopLevel (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\statement.js:30:21)
at Parser.parse (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\index.js:70:17)
at Object.parse (C:\Users\Adam\Documents\test\riotjs-startkit-master\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\index.js:45:50)

@ ./src/pages/home.tag 5:0-37

4

1 回答 1

0

似乎那个 startkit 使用 webpack 和 babel 从 es6 转换。您使用的语法由 Riot 提供,不是真正的 es6。

因此,如果您从 es6 转译,请使用 es6 语法,因为 Riot.js 语法将不起作用。

this.addItem = (e) => {
    console.log('elo');
}

如果没有,你可以使用 js 语法

this.addItem = function(s) {
    console.log('elo');
}

或者你也可以使用 Riot.js 提供的类似 es6 的语法

addItem(e) {
    console.log('elo');
}
于 2016-09-28T18:41:23.427 回答