为了账号安全,请及时绑定邮箱和手机立即绑定

更新嵌套数组和对象中的对象。对象 --> 数组 --> 对象 --> 数组 --> “对象”

更新嵌套数组和对象中的对象。对象 --> 数组 --> 对象 --> 数组 --> “对象”

交互式爱情 2021-10-21 16:14:14
如果我有一个对象todo作为您状态的一部分,并且该对象包含 array lists,则在其中lists有对象,在这些对象中还有另一个 array listItems。如何listItems使用 id:" poi098 "更新数组内的对象?演示在这里:https : //stackblitz.com/edit/react-fjyb9gclass App extends Component {  constructor() {    super();    this.state = {      todo: {        id: "abc123",        name: "AAA",        lists: [          {            id: "def456",             desc: "description",            listItems: [              {                id: "ghj678",                 title: "title1",                listItemsId: "88abf1"              },              {                id: "poi098",                 title: "title2",                listItemsId: "2a49f25"              }            ]             },          {            id: "zxc456",             desc: "description3",            listItems: [              {                id: "qyu678",                 title: "title3",                listItemsId: "h60bf1"              },              {                id: "p8l098",                 title: "title4",                listItemsId: "6yuf25"              }            ]             }        ]        }    }  }  addNew = () => {      const data = {              id: "poi098",               title: "title23333333333",              listItemsId: "2a49f25"            }      const todoCheck = this.state.todo['lists'].filter(obj => obj.id ===  "zxc456")      const todoCheckList = todoCheck.map((obj, i) => obj['listItems'])[0]    this.setState(prevState => ({    ...prevState,    todo: {        ...prevState.todo,        lists: {            ...prevState.todo.lists,             listItems: {               ...prevState.todo.lists.listItems,               listItems: todoCheckList            }        }    }}))  }  render() {    console.log(this.state.todo)    return (      <div>        <Hello name={this.state.name} />        <p>          <button onClick={this.addNew}>Button</button>        </p>      </div>    );  }}
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信