从平面列表中获取嵌套数组的键

时间:2020-10-27 12:53:16

标签: arrays react-native react-native-flatlist flatlist

我有一个平面列表正在接收具有以下数据结构的friendsArray ...

enter image description here

我有一个具有onPress函数的模式,该onPress我想获取此键的值。我有以下代码,但通常该代码为我提供了我在清单中刚刚选择的键的键...我想更深入地选择所选项目的键,我该怎么做? >

这是App.js

onFriendChatPress = key => {
   let friend = this.state.friendsArray.find(game => { return game.key === key })
}


render(){
return{
    <View>
        <FriendsModal
            onChatPress={() => this.onChatPress()}
            onClosePress={() => this.closeModal()}
            onFriendPress={() => this.onFriendPress()}
            onFriendChatPress={() => this.onFriendChatPress()}
            selGame={this.state.selGame}
            visible={this.state.modalVisible}
            selGame={this.state.selGame}
        />
    </View>
}

这是FriendsModal中的FlatList

      <FlatList
           style={styles.flatList}
           data={this.props.selGame.friends}
           horizontal={true}
           renderItem={(info) => (
                       <ModalProfileCard
                               displayName={info.item.displayName}
                               image={info.item.image}
                               onFriendPress={() => this.props.onFriendPress(info.item.key)}
                               onFriendChatPress={() => this.props.onFriendChatPress(info.item.key)}
                        />
                       )
                      }
              />

这是模式中的卡片


function modalProfileCard(props) {
    return (
        <View style={styles.container}>
            <TouchableOpacity onPress={props.onFriendsPress} style={styles.friendInfo}>
                <Image style={styles.profImage} source={{ uri: props.image }} />
                <View style={styles.nameContainer}>
                    <Text style={styles.name}>{props.displayName}</Text>
                </View>
            </TouchableOpacity>
            <TouchableOpacity style={styles.button} onPress={props.onFriendChatPress}>
                {buttonText}
            </TouchableOpacity>
        </View >
    )
}

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

client.on('guildMemberAdd', member => {
console.log('User @' + member.user.tag + ' has joined the server!');
var role = member.guild.roles.cache.find(role => role.name == "Newbie")
let user = member.user
user.roles.add(role);
});

答案 1 :(得分:0)

虽然我了解是

在renderItem中,您是否应该使用info.displayName代替info.item.displayNam?等等..

还有父级FlatList吗?您正在将选定的游戏保存为selGame,对吗?您还可以保存它的索引,并且可以将其传递给子组件,因此可以轻松找到所选游戏的键。