Javascript 按“使用”发送错误对象时对本机列表作出反应;我";

Javascript 按“使用”发送错误对象时对本机列表作出反应;我";,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在react native中创建一个列表,每个元素都可以单击。单击元素时,它将导航到另一个场景,并根据单击的元素和“i”值传递对象 但是,当单击一个元素时,它总是发送“i”结束的对象。这是有道理的 构造函数(道具){ 超级(道具); 此.state={ 项目:this.props.items }; } makeList(){ 变量项=[] 对于(var i=0;i this.state.items[i].name ) } 退货项目; } render(){ 返回( {this.makeLis

我正在react native中创建一个列表,每个元素都可以单击。单击元素时,它将导航到另一个场景,并根据单击的元素和“i”值传递对象

但是,当单击一个元素时,它总是发送“i”结束的对象。这是有道理的

构造函数(道具){
超级(道具);
此.state={
项目:this.props.items
};
}
makeList(){
变量项=[]
对于(var i=0;i
this.state.items[i].name
)
}
退货项目;
}
render(){
返回(
{this.makeList()}
);
}
发送项目(项目){
本.道具.导航(项目);
}
因此,每当单击任何一个项目时,都会发送“四”

如何修复此问题,使其发送正确的对象


谢谢大家!

var
不会为循环的每次迭代创建新变量,因此您正在对相同的
i
变量进行变异。当循环结束时,
i==3
,这就是
onPress
回调所看到的。您可以使用
let

for (let i = 0; i <3; i++) {
for(设i=0;i{
返回;
});

此.state.items
在给定代码中不存在。请在编写代码时详细说明代码。目前,您的代码中没有显示任何状态对象。@CarlMarkham下来看看这会如何改变任何东西,但现在就开始了。谢谢!更改为“let”修复了该问题。现在我也知道让我们做什么了!
const items = Array.from({length: 3}, (x, i) => {
  return <TouchableOpacity ... />;
});