javascript - 如何删除 ReactNative(JS) 列表中的特定元素
问题描述
我制作了一个待办事项列表,我输入的任何内容都会被推送到一个数组中。当我映射数组时,我放了一个垃圾桶按钮,他们可以在其中删除“待办事项”列表。我尝试Splice
了方法,但没有奏效。例如,我有一个列表,上面写着:
《买牛奶》
《拿鸡蛋》
如果我想删除“Get Eggs”,它正在删除“Buy Milk”(它正在删除顶部的任何内容)。有人可以帮助我如何实现这一目标。这是我的代码(反应本机代码):
removeList = (item) => {
let val = this.state.noteList;
let arr = val.splice(item, 1); // <= this is what I did but it is removing the first element of the list
let complete = this.state.completedTask;
complete.push(arr);
this.setState({
arr
})
};
这是我的可触摸不透明度:
<TouchableOpacity
onPress={this.removeList}
style={{
height: deviceHeight / 10,
width: deviceWidth / 6,
backgroundColor: "#e6a25c",
justifyContent: "center",
}}
>
<AntDesign
name="checkcircleo"
size={45}
color="black"
style={{ alignSelf: "center" }}
/>
</TouchableOpacity>;
这对您来说似乎是一个愚蠢的问题,但我似乎无法弄清楚。
编辑:我试图做一个平面列表而不是映射,但它对我不起作用。难道我做错了什么:
let newNote = [] // This is new NOTE and NOT THE COMPLETED SCREEN
newNote.push(
<FlatList
data={this.state.noteList}
ListHeaderComponent={this.renderHeader}
renderItem={({item,index}) => {
<View style={{height:100,width:200,backgroundColor: "black"}}>
<View style={styles.newBoxView}>
<Text>{item}</Text>
</View>
</View>
}}
/>
)
解决方案
尝试这个:
removeList = (item) => {
let val = this.state.noteList;
let arr;
for (let i = 0; i < val.length; i++) {
if (val[i] === item) {
arr = val.splice(i, 1);
}
}
let complete = this.state.completedTask;
complete.push(arr);
};
推荐阅读
- gitolite - gitolite不能限制用户访问分支
- java - java - 如何使JWTfilter auth服务MS对Java sts中不同n个微服务的n个请求通用
- node.js - 在 Amazon Linux AMI 上安装 NPM
- nginx - 重定向到 Nginx 中的新页面时如何删除尾部斜杠
- flowchart - 为什么这是连接到数组而不是结束
- python - 如何在项目中实现 OpenCV GPU
- android - retrofit2.HttpException:HTTP 403 禁止
- java - iText7 - 无法从 jar 加载自定义 ttf 字体
- mysql - MYSQL 5.7 和 PopSQL
- ms-access - 具有动态列数的报告