【发布时间】:2018-09-26 08:50:07
【问题描述】:
我想用 props 给孩子传递函数,并创建几个可以点击的组件
父类:
handleClick(i){
alert(i);
}
render(){
var items = [];
for (var i = 0; i < 7; i++) {
items.push(
<Item onClick={()=>this.handleClick(i)} />
);
}
return <ul>{items}</ul>;
}
子类:
render() {
return (
<li onClick={this.props.onClick}> some names </li>
);
}
但是结果和我预想的不一样。
我希望第一个元素指向alert(0),第二个元素指向alert(1),依此类推。
但是,当我点击它们时,所有元素都会显示7。我想那是因为我总是在 for 循环完成后使用i。
我猜这是关于作用域的基本概念或使用闭包之类的问题,而不是 React 问题。但我仍然找不到解决此问题的正确方法。
【问题讨论】:
标签: javascript reactjs scope onclick