当我尝试拨打onClick
函数<li onClick={this.props.selectItem.bind(this, item.id)} key={index}>
时,我收到此错误:
export default class List extends React.Component {
getState(props) {
const key = props.params.key;
return {
key : key,
list: Store.getList()
}
}
constructor(props) {
super(props);
this.state = this.getState(props);
}
renderList(item, index) {
return <li onClick={this.props.selectItem.bind(this, item.id)} key={index}>{item.name}</li>;
}
render() {
return (
<ul>
{this.state.list.map(this.renderList.bind(this))}
</ul>
)
}
}
我有父母:
export default class App extends React.Component {
selectItem(item) {
alert(item);
}
render() {
return (
<div>
<List selectItem={this.selectItem} params={someParams} />
</div>
);
}
}
答案 0 :(得分:0)
从父组件传入绑定方法时,您必须为null
传递this
而不是bind
。
因此this.props.selectItem.bind(this, item.id)
变为this.props.selectItem.bind(null, item.id)
。
答案 1 :(得分:0)
在构造函数中,执行this.renderList = this.renderList.bind(this);