在ReactJS中创建组件类时,方法未定义错误

时间:2017-01-21 15:54:10

标签: reactjs

我一直在研究一个新的React项目,并且我遇到了几次相同的问题:类方法在编译时没有被类组件“看到”。例如:

  class CategoryList extends Component {
  constructor(props) {
    super(props);

    // this.renderListItem = this.renderListItem.bind(this);
  }

  renderListItem({category}) {
    return <a href="#" className="list-group-item" key={category} >{category}</a>;
  }

  render() {
    return (
      <div>
        <div className="list-group">
          {this.props.categories.map(renderListItem)}
        </div>
      </div>
    );
  }

}

export default CategoryList;

产生编译错误:

6:3   warning  Useless constructor              no-useless-constructor
20:38  error    'renderListItem' is not defined  no-undef

请注意,对于这样一个简单的模块,我当然可以通过将renderListItem()代码放在render()中来避免整个事情,这是一个风格的东西。我错过了什么?

1 个答案:

答案 0 :(得分:1)

renderListItem定义为CategoryList方法。要在render中调用它,您需要使用this

 {this.props.categories.map(this.renderListItem)}
                            ^^^^^