我知道这个问题已经问了很多,但是我找不到答案。任何帮助将不胜感激,谢谢!
根据在Laravel中发表的关于在Laravel中做出反应的帖子,Jeffrey Way说: 只要做:
mix.react('src', 'output');
我们将安装所有必需的Babel插件并设置您的.babelrc。
在我的项目中,我目前有一个组件,在我的反应混合文件中,我有这个组件:
mix.react('resources/assets/js/basicapp.js', 'public/js');
我的basicapp.js文件是一个简单的组件设置,如下所示:
require('./components/Reactapp');
当我运行mix时,会产生错误: 模块构建失败: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自动完成。
答案 0 :(得分:1)
经过进一步审查,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"
]
]
}
答案 1 :(得分:0)
我将其留为评论,但我没有足够的意见要发表。但是,如果您不使用es6语法,是否可行?
toggleSelected(id, key){}
答案 2 :(得分:0)
toggleSelected = (id, key) => {
......
}
您正在为事件处理程序使用所谓的类字段/属性语法。
此语法是实验性功能,只有在提供以下内容时才能使用:
@ babel / plugin-proposal-class-properties
参见proposal class properties
您需要使用以下命令安装插件:
npm install --save-dev @babel/plugin-proposal-class-properties