Javascript 意外标记'<';即使在脚本上使用text/babel

Javascript 意外标记'<';即使在脚本上使用text/babel,javascript,html,reactjs,Javascript,Html,Reactjs,我正在尝试使用完全有效的JSX在React中渲染一个按钮(至少,就我看了20分钟后所知)。但出于某种原因,我一直得到语法错误: 意外标记“您没有附加React脚本,请参见 由于JSX用于React.createElement,并且自定义组件必须大写,因此您应该呈现按钮,如下所示: class User extends Component{ constructor(props){ super(); this.user = props.user;

我正在尝试使用完全有效的JSXReact中渲染一个按钮(至少,就我看了20分钟后所知)。但出于某种原因,我一直得到语法错误:


意外标记“您没有附加React脚本,请参见

由于JSX用于
React.createElement
,并且自定义组件必须大写,因此您应该呈现
按钮
,如下所示:

class User extends Component{
    constructor(props){
        super();
        this.user = props.user;
        this.state = { modalOpen: false };
    }

    Button = () => {
        let user = this.user;
        return (
            <button className={user.loggedIn ? "user" : "sign-in"}>
                {user.loggedIn ? user.public.display : "Sign In"}
            </button>
        );
    }

    render(){
        const Button = this.Button;
        return (
            <div className="button">
                <Button />
            </div>
        );
    }
}

请参阅。

您没有附加React脚本,请参阅

由于JSX用于
React.createElement
,并且自定义组件必须大写,因此您应该呈现
按钮
,如下所示:

class User extends Component{
    constructor(props){
        super();
        this.user = props.user;
        this.state = { modalOpen: false };
    }

    Button = () => {
        let user = this.user;
        return (
            <button className={user.loggedIn ? "user" : "sign-in"}>
                {user.loggedIn ? user.public.display : "Sign In"}
            </button>
        );
    }

    render(){
        const Button = this.Button;
        return (
            <div className="button">
                <Button />
            </div>
        );
    }
}

请参阅。

按钮是一个函数而不是组件,请尝试执行该函数。@BlackGiant
是一个匿名功能组件,在我的所有其他脚本中呈现正常。还应添加更改不会删除我的错误:-(尝试重复简单示例不要执行
this.Button()
如建议,必须使用
createElement
才能将其注册到反应树。Button是函数而不是组件,请尝试
{this.Button()}
而不是
来执行该函数。@BlackGigant
是一个匿名函数组件,在我的所有其他脚本中呈现为正常。还应添加更改它不会删除我的错误的内容:-(尝试重复简单示例不要执行
此按钮()
正如建议的那样,您必须使用
createElement
才能将其注册到反应树。不幸的是,您没有做任何事情。正如我在前面的问题中提到的,您是否在沙箱中有一个可复制的示例?“没有做任何事情”是什么意思?相同的错误(不太可能)?屏幕上没有显示任何内容?一般来说,没有做任何事情意味着什么都没有改变。因此,是的,我仍然得到相同的错误。我认为您没有安装babel的JSX。不幸的是,没有做任何事情。正如我在前面的问题中提到的,您在沙盒中有一个可复制的示例吗?它是什么意思“没有做任何事情”,相同的错误(不太可能)?屏幕上没有显示任何内容?没有做任何事情,通常意味着没有任何更改。因此,是的,我仍然收到相同的错误。我认为您没有安装babel的JSX,
class User extends Component{
    constructor(props){
        super();
        this.user = props.user;
        this.state = { modalOpen: false };
    }

    Button = () => {
        let user = this.user;
        return (
            <button className={user.loggedIn ? "user" : "sign-in"}>
                {user.loggedIn ? user.public.display : "Sign In"}
            </button>
        );
    }

    render(){
        const Button = this.Button;
        return (
            <div className="button">
                <Button />
            </div>
        );
    }
}
<div className="button">
 {React.createElement(this.Button, null)}
</div>