类型错误: Super表达式必须为null或函数,而不是未定义的。

3

我在使用React组件和props时遇到了问题。以下是异常信息。 我做错了什么?

未捕获的类型错误: 超级表达式必须为null或函数,而不是undefined

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 链接

1个回答

7

问题出在这一行:

class Component extends React.component {

你在React.component中使用了小写的c,请使用大写的 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>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接