为什么在下面的代码Delete
中,单击按钮不会触发delete
方法?我缺少什么重要的东西?我是新来学习React.js
delete(e) {
console.log('Deleted');
}
static renderCatTable(Categories) {
return (
<table className='table table-striped'>
<thead>
<tr>
<th>Code</th>
<th></th>
</tr>
</thead>
<tbody>
{Categories.map(category =>
<tr key={category._id}>
<td>{category.code}</td>
<td><button onClick={this.delete} className="btn btn-danger">Delete</button></td>
</tr>
)}
</tbody>
</table>
);
}
我已经在构造函数中定义了绑定
this.delete = this.delete.bind(this);
渲染功能如下。
render() {
let contents = this.state.loading
? <p><em>Loading...</em></p>
: Category.renderCatTable(this.state.Categories);
return (
<div>
{contents}
</div>
);
}
答案 0 :(得分:2)
因为渲染方法是static
。根据定义,static
方法无法访问实例变量。如果可能,您应该删除该修饰符,并且该修饰符应该起作用。