【问题标题】:editing array items dynamically in react native在本机反应中动态编辑数组项
【发布时间】:2019-10-10 10:53:10
【问题描述】:

这是我的状态和数组:

this.state = {
  arr: [{
    arrid: 0,
    arrEmail: '',
    arrName: '',
    arrPhone: ''
  }],
  id: 0,
  email: "",
  isChecked: true,
  name: "",
  phone: "",
  isOpen: false,
  editedEmail: '',
  editedName: '',
  editedPhone: ''
};

这是他们被编辑的地方:

updateEmail = value => {
  this.setState({ editedEmail: value });
};
updateName = value => {
  this.setState({ editedName: value });
};
updatePhone = value => {
  this.setState({ editedPhone: value });
};

这是动态编辑元素的功能:

editData = (row) => {
  this.refs.modal2.close();
  var arr3 = this.state.arr;
  var arrid = this.state.id;
  var index = arr3.indexOf(row);
  var editedName = this.state.editedName;
  var editedEmail = this.state.editedEmail;
  var editedPhone = this.state.editedPhone;

  this.setState({
    arrid: arrid,
    arrEmail: editedEmail,
    arrName: editedName,
    arrPhone: editedPhone
  });
}

但它没有被编辑。首先,它们没有被存储。

arr3

【问题讨论】:

  • 您是否使用模态来编辑字段?如果是,那么提到的状态是模态或组件的状态?
  • @nehasoni 提到的状态(isOpen)是用于模态的,它没有被使用你可以忽略它

标签: javascript android arrays reactjs react-native


【解决方案1】:

在你的 editData 函数中使用它:

this.setState({arr:[...arr3.map(item=>item.arrid===arrid?{...item,arrEmail:editedEmail, arrName:editedName, arrPhone:editedPhone }:item)]});

【讨论】:

  • 捆绑失败:SyntaxError:/Users/vamsi/Desktop/moodcafe/App.js:意外令牌 (86:19) 84 |编辑数据=(行)=>{ 85 | this.refs.modal2.close(); > 86 | this.setState(arr:[...arr3.map(item=>item.arrid===arrid?{...item,arrEmail:editedEmail, arrName:editedName, arrPhone:editedPhone }:item)]); | ^ 87 | 88 | }
  • 对不起。我编辑了我的答案。 setState 参数应该是一个对象
猜你喜欢
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多