我一直在研究一个新的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()中来避免整个事情,这是一个风格的东西。我错过了什么?
答案 0 :(得分:1)
renderListItem
定义为CategoryList
方法。要在render
中调用它,您需要使用this
{this.props.categories.map(this.renderListItem)}
^^^^^