语法错误“;期望表达式,得到'<'&引用;在尝试运行reactjs教程时

语法错误“;期望表达式,得到'<'&引用;在尝试运行reactjs教程时,reactjs,Reactjs,我正在使用我自己的服务器(apache)和建议的HTML文件以及教程示例的逐字副本完成reactjs教程 最简单的示例在我的服务器上失败,但在JSFIDLE上有效 我的HTML文件和脚本如下所示 脚本失败,呈现时出现语法错误:function(){ firefox和Safari(mac版本,最新版本)中的错误消息 “”“SyntaxError:应为表达式,得到'您发布的代码存在两个问题 首先,JSX transformer没有转换代码,因为脚本标记上没有相应的类型属性 改变 var Hello

我正在使用我自己的服务器(apache)和建议的HTML文件以及教程示例的逐字副本完成reactjs教程

最简单的示例在我的服务器上失败,但在JSFIDLE上有效

我的HTML文件和脚本如下所示

脚本失败,呈现时出现语法错误:function(){

firefox和Safari(mac版本,最新版本)中的错误消息


“”“SyntaxError:应为表达式,得到'您发布的代码存在两个问题

首先,JSX transformer没有转换代码,因为
脚本
标记上没有相应的
类型
属性

改变


var Hello=React.createClass({
...


var Hello=React.createClass({
...
其次,在页面上实际存在
div
之前调用
document.getElementById('container')
;将最后的
脚本
标记及其内容移动到
div
之后(例如,移动到
正文的底部)

最终的代码应该与教程中显示的代码类似:


你好,反应
//你的代码在这里

这是一个旧线程,但我最近在我的React应用程序上执行npm运行构建时遇到了这个错误,我刚刚使用WinSCP将它从Windows box复制到Linux box。我正在使用nginx在Linux box上为应用程序提供服务。原来我的问题是静态目录中的JS文件没有执行权限。这导致了一个错误,只提供了我的index.html而不是js文件,因此SyntaxError:expected表达式得到了“Narsters的答案,对我来说很有效,但我不得不将这一行添加到我的package.json中

 "homepage": "./",

我是一个新手,在网站上添加了react。我在中找到了演示代码 中的代码是不同的

我从codepen下载代码。它是这样的:(它可以工作)

官方网站上的代码是:(它不工作)

render(){
返回(
姓名:
);
}
}
ReactDOM.render(
,
document.getElementById('root'))
);

我不知道它们为什么不同,但我只知道我应该使用方法而不是标签

我有同样的问题,问题是

npm init


在我运行这个程序之后,它会询问一些问题,并将数据填入
package.json
,更改
homepage
,以及我刚刚打开package.json并删除npm在文件末尾创建的所有行,如
description,homepage,author
,这个问题可能有不同的原因。 其中一个问题的答案是上面的“米歇尔·蒂利”

确保您已检查并尝试了上述第一种解决方案

那么让我解释一下我的情况是什么原因

我没有在我的
index.html
文件中使用
%PUBLIC\u URL%
,这就是我面临这个问题的原因

index.html
假设您已经导入了布局和Js的文件,如下所示

<script src="/vendor/jquery/dist/jquery.min.js"></script>

希望这能对其他人有所帮助。干杯

在html文件中使用react via cdn时,我也遇到了同样的错误,我偶然发现了这篇与我的问题非常相似的文章

我的代码的问题是js无法理解我在components render方法中使用的jsx代码

这是我如何把它修好的。 除了react,我为babel单机版添加了另一个cdn,如下所示

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script>

发布此答案,希望它能帮助面临相同问题的人。

尝试将
标记移动到身体内部。JSX transformer脚本需要时间加载。谢谢你——我现在明白了。它是这样工作的,完全有道理解释为什么它在我不工作之前无法工作。我得到一个空白屏幕。没有控制台e错误。我尝试过,但没有成功,我已经为我的案例添加了以下答案。我认为“标记”方法是JSX,如果没有预处理步骤,在浏览器中(2020年)将无法工作。如果你在CodePen中转到“设置->Js”,并选择“Babel”作为JavaScript预处理器,你应该能够使用“标记”方法。选择“无”作为预处理器,您应该得到“SyntaxError:expected expression,get”
    render() {
        return (
            <form onSubmit={this.handleSubmit}>
                <label>
                    Name:
                    <input type="text" value={this.state.value} onChange={this.handleChange} />
                </label>
                <input type="submit" value="Submit" />
            </form>
        );
    }
}

ReactDOM.render(
    <NameForm />,
    document.getElementById('root')
);
<script src="/vendor/jquery/dist/jquery.min.js"></script>
SyntaxError: expected expression, got '<' jquery.min.js:1
SyntaxError: expected expression, got '<' bootstrap.bundle.min.js:1
SyntaxError: expected expression, got '<' js.cookie.js:1
<script src="%PUBLIC_URL%/vendor/jquery/dist/jquery.min.js"></script>
<script src="%PUBLIC_URL%/vendor/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script>
<script type="text/babel">/* my react code containing jsx */</script>