react-laravel意外的令牌

时间:2016-05-17 12:05:00

标签: php laravel reactjs laravel-5 react-laravel

我正在努力让反应工作。我已经正确安装了所有东西(v8js等),但我一直得到:

V8Js::executeString():18903: SyntaxError: Unexpected token <

问题似乎在于我的component.js文件:

var Application = React.createClass({
    render: function() {
        return (
            <div className="Networks">
                <ul>
                    <li>Test</li>
                </ul>
            </div>
        );
    }
});

我该如何解决这个问题?

此外,是否可以使用ES6?

我的观点:

<html>

<head>
    <title>JSPM Experiment</title>
    <script src="{{ asset('vendor/react-laravel/react.js') }}"></script>
    <script src="{{ asset('js/components.js') }}"></script>
    <script src="{{ asset('vendor/react-laravel/react_ujs.js') }}"></script>
</head>

<body>

<div id='react-root'>
</div>
@react_component('Application',[ 'title' => 'Hello, World' ], [ 'prerender' => true ])
</body>

</html>

3 个答案:

答案 0 :(得分:0)

是&#34; component.js&#34;或&#34; components.js&#34;?你可能有拼写错误。

通常在尝试加载不存在的javascript文件时会得到SyntaxError: Unexpected token <。 Laravel呈现一个404 HTML页面,并且第一个<会使您的脚本标记出现。

答案 1 :(得分:0)

如果有人仍然有此错误,我安装了Laravel 6并设置了React:

php artisan preset react
npm install

然后我得到了类似的错误“语法错误:意外的令牌”,因为似乎无法理解React JSX语法。它是通过更改webpack.mix.js中的babel配置来解决的:

mix.babelConfig({
  "presets": [
    "@babel/preset-react",
  ],
});

答案 2 :(得分:0)

如果您对Laravel 6有疑问,请检查您的 webpack.mix.js 文件,该文件应为mix.react()而不是mix.js()

https://laravel.com/docs/6.x/mix#react