我正在创建一个列表应用,我想编辑此列出的文本。我不知道该怎么做。
editTodo(key)
{this.state.todoList.splice(key,1);
this.setState({todoText: this.state.todoText})
等等是
let tds = this.state.todoList.map((val,key) => {
return <ToDo key = {key}
keyval = {key}
val = {val}
deleteTodo = { () => this.deleteTodo(key)} />
});
但它不起作用。我是React-native的新人。
答案 0 :(得分:0)
如果要从列表中删除项目,可以使用以下代码:
let t = this.state.todoList;
t.splice(key, 1);
this.setState({todoList: t})
如果您不知道要删除的项目的索引,可以使用:
let t = this.state.todoList;
let i = t.indexOf(val, 0);
if (i > -1){ //if val exist in list
t.splice(i, 1);
}
this.setState({todoList: t})
我希望这可以帮到你。
修改强>
要编辑数组的单元格,可以使用:
let t = this.state.todoList;
t[key] = 'new value'
this.setState({todoList: t})
如果todoList
是一个对象数组,例如:
let todoList: [ {id:1, name:'a'}, {id:2, name:'b'}, {id:3, name:'c'}]
您可以使用:
let t = this.state.todoList;
t[key].name = 'new name'
t[key].id = newID
this.setState({todoList: t})
或者您可以传递一个对象并将其分配给单元格,如下所示:
Edit = (newObj) => {
let t = this.state.todoList;
t[key] = newObj
this.setState({todoList: t})
}