我正在努力让反应工作。我已经正确安装了所有东西(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>
答案 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()