【问题标题】:get Value of selected item in FlatList. -- React Native获取 FlatList 中选定项目的值。 -- 反应原生
【发布时间】:2018-04-26 23:20:19
【问题描述】:

我通过绑定一个数组实现了一个平面列表组件。当我点击一个项目时。我必须获取项目名称或 ID。

 _renderList = ({ item }) => {
    return (
        <View style={styles.listContainer} onPress={this._selectedItem(item.text)}  >
            <Image style={styles.listImage} source={item.avatar} />
            <Text style={styles.listText} >{item.text}</Text>
            <Text style={styles.listVal} >{item.val}</Text>
            <Image style={styles.listImage}   source={require('../../resources/icons/MyAccount/arrowright.png')} />
        </View>
    );

}


<FlatList data={this.state.data} renderItem={this._renderList} />

【问题讨论】:

标签: reactjs react-native ecmascript-6


【解决方案1】:

考虑@SNT 答案和bennygenel cmets。我已经添加了这个。回答,因为他们的两个建议都需要关注。

 _renderList = ({ item }) => {
    return (
     <TouchableWithoutFeedback onPress={(event)=>this._selectedItem(item.text)}>
        <View style={styles.listContainer}>
            <Image style={styles.listImage} source={item.avatar} />
            <Text style={styles.listText} >{item.text}</Text>
            <Text style={styles.listVal} >{item.val}</Text>
            <Image style={styles.listImage}   source={require('../../resources/icons/MyAccount/arrowright.png')} />
        </View>
     </TouchableWithoutFeedback>
    );

}


<FlatList data={this.state.data} renderItem={this._renderList} />

【讨论】:

    【解决方案2】:

    您可以使用TouchableOpacityTouchableHighlitforTouchableWithoutFeedbackonPress 事件。 View 不提供 onPress 道具。

     _renderList = ({ item }) => {
        return (
         <TouchableWithoutFeedback onPress={(item)=>this._selectedItem(item.text)}>
            <View style={styles.listContainer}>
                <Image style={styles.listImage} source={item.avatar} />
                <Text style={styles.listText} >{item.text}</Text>
                <Text style={styles.listVal} >{item.val}</Text>
                <Image style={styles.listImage}   source={require('../../resources/icons/MyAccount/arrowright.png')} />
            </View>
         </TouchableWithoutFeedback>
        );
    
    }
    
    
    <FlatList data={this.state.data} renderItem={this._renderList} />
    

    【讨论】:

    • onPress={(item)=&gt;this._selectedItem(item.text)} 应该是onPress={(event)=&gt;this._selectedItem(item.text)}
    • 它在警报消息@SNT中返回未定义
    • 哪个警报信息?你的 _selectedItem 函数是什么?
    猜你喜欢
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2018-12-02
    • 2018-04-17
    • 2019-04-23
    • 1970-01-01
    相关资源
    最近更新 更多