我的“ Hello World”示例出了什么问题?

时间:2018-09-17 20:00:57

标签: javascript reactjs

我学习了ReactJS,并尝试通过“清除ReactJS”来使用它。

这是我的简单代码:

class MyList extends React.Component{

        constructor(data){
            super(data)
            this.text = data.text
        }
        
        render(){
            return React.createElement("h1", null,
            this.props.text)
        }
    }
    
const root = document.getElementById("root")
const component = new MyList({text:"abcdefgh"})
ReactDOM.render(component,root)
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

但是它不起作用。为什么不起作用?

谢谢。

2 个答案:

答案 0 :(得分:3)

错误在您的const组件行中。 ReactDOM.render函数的第一个参数应该是实际的组件。组件是使用React.createElement生成的(就像您在MyList组件的render()函数中所做的一样。这是一个有效的示例:https://jsbin.com/lejuwet/1/edit?html,js,output

class MyList extends React.Component{

        constructor(data){
            super(data)
            this.text = data.text
        }

        render(){
          console.log("render");
            return React.createElement("h1", null,
            this.props.text)
        }
    }

const root = document.getElementById("root")
const component = new React.createElement(MyList, {text: "123"});
ReactDOM.render(component, root)

答案 1 :(得分:0)

您正在使用旧版本的ReactJS。这就是React v16的外观。

import React,{ Component } from "react";
import ReactDOM from "react-dom";

import "./styles.css";

class App extends Component {

  constructor(props) {
    super(props)
  }

  render() {
    return(
      <h1>Hello World</h1>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);