【发布时间】:2018-10-04 02:21:16
【问题描述】:
我试图通过触摸从我的平面列表中删除一个项目,但我无法这样做。我知道我需要将触摸的索引传递给我的 deleteMessage() 函数,但我不知道该怎么做。
deleteMessage(item) {
console.log("delete message!");
console.log(item);
index = this.state.messageList.indexOf(item);
console.log(index);
let newList = this.state.messageList.splice(index, 1);
console.log(newList);
this.setState({
messageList: newList
});
}
renderMessage(message) {
console.log(message.item);
return (
<TouchableHighlight onPress={()=> this.deleteMessage()}>
<Text style={styles.message}> {message.item} </Text>
</TouchableHighlight>
);
}
render() {
return (
<View style={styles.container}>
<FlatList
style={styles.listContainer}
data={this.state.messageList}
renderItem={item => this.renderMessage(item)}
/>
<View style={styles.sendContainer}>
<TextInput
style={styles.TextInputStyle}
onChangeText={text => this.handleInputMessage(text)}
placeholder="type message here"
value={this.state.message}
/>
<Button onPress={() => this.handleSubmitMessage()} title="sennd" />
</View>
</View>
);
}
}
【问题讨论】:
标签: javascript arrays reactjs react-native