Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ReactJS语法错误_Reactjs_Babeljs_Serverless - Fatal编程技术网

ReactJS语法错误

ReactJS语法错误,reactjs,babeljs,serverless,Reactjs,Babeljs,Serverless,因此,我不熟悉使用ReactJS,并不断遇到以下错误: wrap — babel.js:4848SyntaxError: Inline Babel script: Unexpected token, expected { (17:8) 15 | 16 | buttonClicked() > 17 | render() { | ^ 18 | 19 | let msg = this.state.m

因此,我不熟悉使用ReactJS,并不断遇到以下错误:

wrap — babel.js:4848SyntaxError: Inline Babel script: Unexpected token, expected { (17:8)
  15 | 
  16 |         buttonClicked()
> 17 |         render() {
     |         ^
  18 | 
  19 |           let msg = this.state.message;
  20 | 

谁能告诉我我做错了什么吗?

谢谢你的回复,到目前为止!这是我的完整代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>React Demo</title>
    <style media="screen">
     .messageBox {
       border: 1px solid;
       margin: 1em;
       padding: 2em;
     }

.error {
  border-color: red;
  background-color: #eebbbb;
}

.success {
  border-color: blue;
  background-color: #bbbbee;
}

.hidden {
  display: none
}
    </style>
  </head>
  <body>
    <main id="content"></main>

    <script src="https://unpkg.com/babel-standalone"></script>
    <script type="text/javascript" src="https://unpkg.com/react@16.0.0/umd/react.production.min.js"></script>
    <script type="text/javascript" src="https://unpkg.com/react-dom@16.0.0/umd/react-dom.production.min.js "></script>

    <script type="text/babel" data-presets="react">

      class NameInput extends React.Component {
        constructor(props) {
          super(props);

          this.state = {
            message: {
              type: "success",
              body: "Now my message is in NameInput's state"
            }
          }

          this.buttonClicked = this.buttonClicked.bind(this);
        }

        buttonClicked(evt) {

        }

        render() {

          let msg = this.state.message;

          return (
            <div>
             <label>Name: <input type="text" /></label>
             <button onClick={this.buttonClicked}>Click me!</button>

             <MessageBox type={msg.type} message={msg.body}/>
            </div>
          )
        }
      }

      class MessageBox extends React.Component {
        render() {
          return (
            <div className={"messageBox " + (this.props.type || "hidden")}
              {this.props.message}
            </div>

          )
        }
      }

        ReactDOM.render(<NameInput />, document.getElementById('content'));

    </script>
  </body>
</html>

反应演示
.messageBox{
边框:1px实心;
边缘:1米;
填料:2米;
}
.错误{
边框颜色:红色;
背景色:#eebbbb;
}
.成功{
边框颜色:蓝色;
背景色:#bbbbee;
}
.隐藏{
显示:无
}
类NameInput扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
信息:{
键入:“成功”,
正文:“现在我的邮件处于NameInput的状态”
}
}
this.buttonClicked=this.buttonClicked.bind(this);
}
按钮锁定(evt){
}
render(){
让msg=this.state.message;
返回(
姓名:
点击我!
)
}
}
类MessageBox扩展了React.Component{
render(){
返回(

希望您的HTML文件如下所示:

<html>

<head>
    <title>demo</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react-dom.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.21.1/babel.min.js"></script>
</head>
<body>
    <div id="container"/></div>
    <script type="text/babel">
        class MessageBox extends React.Component {
            constructor(props){
            super(props);
            }
            render() {
                return (
                    <div>
                        <div className={`messageBox ${this.props.type} || hidden`}>
                            {this.props.message}
                        </div>
                    </div>
                );
            }
        } 

    class NameInput extends React.Component {
        constructor(props) {
            super(props);
            this.state = {
                message: {
                type: "success",
                body: "Now my message is in NameInput's state"
                }
            }
            this.buttonClicked = this.buttonClicked.bind(this);
        }

        buttonClicked(evt) {
            alert("hi");
        }

        render() {

            let msg = this.state.message;

            return (
                <div>
                <label>Name: <input type="text" /></label>
                <button onClick={this.buttonClicked}>Click me!</button>

                <MessageBox type={msg.type} message={msg.body}/>
                </div>
            )
            }
    }

    ReactDOM.render(
        <NameInput />,
        document.getElementById('container')
    );
</script>

演示
类MessageBox扩展了React.Component{
建造师(道具){
超级(道具);
}
render(){
返回(
{this.props.message}
);
}
} 
类NameInput扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
信息:{
键入:“成功”,
正文:“现在我的邮件处于NameInput的状态”
}
}
this.buttonClicked=this.buttonClicked.bind(this);
}
按钮锁定(evt){
警报(“hi”);
}
render(){
让msg=this.state.message;
返回(
姓名:
点击我!
)
}
}
ReactDOM.render(
,
document.getElementById('容器')
);


请发布您的代码。发布至少一条Competite错误消息以获得更好的帮助和社区的快速响应这是我的完整代码:当我尝试启动react.html时,它总是出现空白。这是在做出您建议的更改之后。很抱歉,很烦人,我只是觉得我遇到了一些问题我错过了所有这些。你检查了工作演示了吗?这对我来说很好,因为它是你的代码,我只做了很少的更改。我想,你在html中使用巴贝尔,确保你有各自的cdn加载,如react,reactdom,babelupdated我的答案,希望你做的事情与我一样。非常感谢你Jayavel!我是把我的代码和你的代码放在一起,它就完美地工作了。不可否认,我不是一名程序员,我正在努力成为一名AWS SA,并开始从事一个无服务器项目,以展示我对各种AWS服务的使用。如果你有空,你能解释一下为什么我的代码与你编译的代码不正确吗?你错过了一个接近的标签,而我使用了es6吗此处为模板文本。如果有帮助,请将其标记为已接受。