Как обновить массив вложенных объектов JSON в состоянии? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть массив объектов JSON и я хочу обновить в состоянии

Текущее состояние

this.state.data  has [
  {
     "check_box_list": [
        {"name":"Courier Received by Investor","value":true},
        {"name":"Courier Sent By Investor","value":true},
        {"name":"Signed CA-Doc received","value":true},
        {"name":"Cheque/Payment Received","value":true},
        {"name":"Cancelled Cheque Received","value":true},
        {"name":"ID Proof Received","value":true},     
        {"name":"Address Proof Received","value":true},
        {"name":"KYC Received","value":true},
        {"name":"Signed CA pictures/scan received","value":true},
        {"name":"KRA Updated","value":true}
    ],
    "ca_doc_offline_comment":[""],
    "_id":"5ca89fcd0434ff4ba08b2d37",
    "user_id":"1589",
    "investor_name":"Anupam Mittal",
     "source":"Banner",
     "completed_check_box_list":false,
     "investment_information_id":1154
  }, 
 ...etc
]

хотите заменить состояние отфильтрованными данными:

var filtered_data = [
  {
    check_box_list: [
      { name: "Courier Received by Investor", value: false },
      { name: "Courier Sent By Investor", value: false },
      { name: "Signed CA-Doc received", value: false },
      { name: "Cheque/Payment Received", value: false },
      { name: "Cancelled Cheque Received", value: false },
      { name: "ID Proof Received", value: false },
      { name: "Address Proof Received", value: false },
      { name: "KYC Received", value: false },
      { name: "Signed CA pictures/scan received", value: false },
      { name: "KRA Updated", value: false },
      { name: "KYC Updated", value: false }
    ],
    ca_doc_offline_comment: [""],
    _id: "5ca987f8198d13a54714789e",
    investor_name: "Samala Sumanth",
    completed_check_box_list: false
  },
  {
    check_box_list: [
      { name: "Courier Received by Investor", value: false },
      { name: "Courier Sent By Investor", value: false },
      { name: "Signed CA-Doc received", value: false },
      { name: "Cheque/Payment Received", value: false },
      { name: "Cancelled Cheque Received", value: false },
      { name: "ID Proof Received", value: false },
      { name: "Address Proof Received", value: false },
      { name: "KYC Received", value: false },
      { name: "Signed CA pictures/scan received", value: false },
      { name: "KRA Updated", value: false },
      { name: "KYC Updated", value: false }
    ],
    ca_doc_offline_comment: [""],
    _id: "5ca98801198d13a54714789f",
    investor_name: "Samala Sumanth",
    completed_check_box_list: false
  }
];

Пробовал с пакетом помощников неизменяемости и Object Assign, кажется, ничего не работает, не могли бы вы помочь мне Заранее спасибо

1 Ответ

0 голосов
/ 07 апреля 2019

Вы можете сделать:

const clonedArray = JSON.parse(JSON.stringify(myArray))

И затем использовать map для обновления clonedArray

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

...