TypeError:超级表达式必须为null或函数,而不是未定义

时间:2017-02-21 16:35:38

标签: javascript reactjs

我有反应组件和道具的问题。以下是例外情况。 我做错了什么?

  

未捕获的TypeError:超级表达式必须为null或a   功能,而不是未定义

class Component extends React.component {
  constructor(props) {
    super(props);
    this.state = {
      name: ''
    }
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(event) {
    this.setState({
      name: event.target.value
    }); 
  }

  render() {
    return (
      <div>
        <input type="text" onChange={this.handleChange} />
        <p>{this.state.name}</p>
      </div>
    )
  }
};

ReactDOM.render(
  <Component />,
  document.getElementById('reactContainer')
)

Codepen link

1 个答案:

答案 0 :(得分:4)

问题出在这一行:

class Component extends React.component {

您在c中使用了小React.component而不是使用C

class Component extends React.Component {

检查工作代码:

class Component extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      name: ''
    }
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(event) {
    this.setState({
      name: event.target.value
    }); 
  }

  render() {
    return (
      <div>
        <input type="text" onChange={this.handleChange} />
        <p>{this.state.name}</p>
      </div>
    )
  }
};

ReactDOM.render(
  <Component />,
  document.getElementById('reactContainer')
)
<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>


<div id='reactContainer'></div>