Я бы хотел передать функции ребенку с помощью реквизита и создать несколько компонентов, по которым можно щелкнуть
родительский класс:
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
, когда я нажимаю на них.Я думаю, это потому, что я всегда использую i
после завершения цикла for.
Я полагаю, что это проблема основных концепций областей или использования замыкания или чего-то еще, а не проблемы React.Но я все еще не могу найти правильный способ решить эту проблему.