【发布时间】:2017-12-05 04:13:02
【问题描述】:
我正在从 JSON 数组中提取数据并从中创建对象,并使用 for 循环从正在创建的对象中的数组中设置我需要的字符串值:
var gamesList = [];
gamesList = this.props.navigation.state.params.gamesList;
var gameIconList = [];
for(var i=0;i<3;i++){
var provider = gamesList[i].provider;
var gameId = gamesList[i].gameId.toString();
gameIconList.push(
<TouchableOpacity onPress={(provider,gameId) => this.launchGame(provider,gameId)}>
<ResponsiveImage source={{uri: gamesList[i].imageUrl}}
initWidth="200" initHeight="120" defaultSource={require('./splash-tile2.png')} />
</TouchableOpacity>
);
}
这一切都发生在 render() 函数中,{gameIconList} 将在 return() 函数中被调用,如下所示:
return(
<ScrollView horizontal={true}>
{gameIconList}
</ScrollView>
);
如您所见,我正在通过循环将字符串值设置到 onPress 函数调用中,当我单击 TouchableOpacity 中的图像时,我希望将设置的字符串值发送回上面的函数:
launchGame = (provider, gameId) => {
params = {
Provider: provider.nativeEvent.text,
Platform: this.state.Platform,
Environment: this.state.Environment,
GameId: gameId,
IsDemo: this.state.IsDemo
};
request = {
method: 'POST',
headers:{
"Content-Type": "application/json"
},
body: params
};
}
但问题是我尝试了很多不同的方法,但当涉及到 provider 值时,我总是收到一个 Proxy 对象返回给我,而当涉及到 gameId 值时,我总是收到一个 undefined 对象。
我尝试了event.target.value和event.nativeEvent.text的调用方法,但无济于事。
我错过了什么? 如果这不是向函数发送值的正确方法,我能否获得有关如何正确执行此操作的指南?
【问题讨论】:
标签: javascript arrays reactjs react-native state