laravel 中的 React 正在获取语法错误意外标记
React in laravel is getting syntaxerror unexpected token
我意识到这个问题已经被问了很多,但我找不到答案。任何帮助将不胜感激,谢谢!
根据 laracasts 中关于在 Laravel 中做出反应的 post Jeffrey Way 说:
只要做:
mix.react('src', 'output');
我们将安装所有必要的 Babel 插件并设置您的 .babelrc。
在我的项目中,我目前有一个组件,在我的反应混合文件中,我有这个:
mix.react('resources/assets/js/basicapp.js', 'public/js');
我的 basicapp.js 文件是一个简单的组件设置,如下所示:
require('./components/Reactapp');
当我 运行 混合时,它会产生一个错误:
模块构建失败:SyntaxError:意外标记 (43:17)
41 | }
42 |
> 43 | toggleSelected = (id, key) => {
| ^
44 | let temp = [...this.state[key]]
45 | temp[id].selected = !temp[id].selected
46 | this.setState({
这两天我一直在绞尽脑汁!任何帮助将不胜感激。
编辑:根据 Jeffrey Way 的说明检查没有 .babelrc 文件后,这应该由 laravel 自动完成。
我会把它留作评论,但我没有足够的分数来发表评论。但是如果你不使用es6语法,它会起作用吗?
toggleSelected(id, key){}
经过进一步审查 Laravel 不仅仅适用于 es6。我必须添加一个 .babelrc 文件,然后向 package.json
添加一些依赖项
我将其添加到 package.json devDependencies:
"babel-cli": "^6.26.0",
"babel-eslint": "^8.2.6",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-0": "^6.24.1",
这已经存在了:
"babel-preset-react": "^6.24.1",
在 .babelrc 文件中我添加了这个:
{
"presets": [
"react",
"stage-0",
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"safari >= 7"
]
}
}
]
],
"plugins": [
[
"babel-plugin-transform-class-properties"
]
]
}
toggleSelected = (id, key) => {
......
}
您正在为您的事件处理程序使用所谓的 class fields/properties 语法。
此语法是一项实验性功能,只有在您提供以下内容时才能使用:
@babel/plugin-proposal-class-properties
参见 proposal class properties
您需要使用此命令安装插件:
npm install --save-dev @babel/plugin-proposal-class-properties
我意识到这个问题已经被问了很多,但我找不到答案。任何帮助将不胜感激,谢谢!
根据 laracasts 中关于在 Laravel 中做出反应的 post Jeffrey Way 说: 只要做:
mix.react('src', 'output');
我们将安装所有必要的 Babel 插件并设置您的 .babelrc。
在我的项目中,我目前有一个组件,在我的反应混合文件中,我有这个:
mix.react('resources/assets/js/basicapp.js', 'public/js');
我的 basicapp.js 文件是一个简单的组件设置,如下所示:
require('./components/Reactapp');
当我 运行 混合时,它会产生一个错误: 模块构建失败:SyntaxError:意外标记 (43:17)
41 | }
42 |
> 43 | toggleSelected = (id, key) => {
| ^
44 | let temp = [...this.state[key]]
45 | temp[id].selected = !temp[id].selected
46 | this.setState({
这两天我一直在绞尽脑汁!任何帮助将不胜感激。
编辑:根据 Jeffrey Way 的说明检查没有 .babelrc 文件后,这应该由 laravel 自动完成。
我会把它留作评论,但我没有足够的分数来发表评论。但是如果你不使用es6语法,它会起作用吗?
toggleSelected(id, key){}
经过进一步审查 Laravel 不仅仅适用于 es6。我必须添加一个 .babelrc 文件,然后向 package.json
添加一些依赖项我将其添加到 package.json devDependencies:
"babel-cli": "^6.26.0",
"babel-eslint": "^8.2.6",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-0": "^6.24.1",
这已经存在了:
"babel-preset-react": "^6.24.1",
在 .babelrc 文件中我添加了这个:
{
"presets": [
"react",
"stage-0",
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"safari >= 7"
]
}
}
]
],
"plugins": [
[
"babel-plugin-transform-class-properties"
]
]
}
toggleSelected = (id, key) => {
......
}
您正在为您的事件处理程序使用所谓的 class fields/properties 语法。
此语法是一项实验性功能,只有在您提供以下内容时才能使用:
@babel/plugin-proposal-class-properties
参见 proposal class properties
您需要使用此命令安装插件:
npm install --save-dev @babel/plugin-proposal-class-properties