数组中的React-Native编辑文本

时间:2018-06-07 16:21:43

标签: react-native

我正在创建一个列表应用,我想编辑此列出的文本。我不知道该怎么做。

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的新人。

1 个答案:

答案 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})
}