React - Redux, зачем влиять на все элементы массива состояний после добавления новых элементов в массив состояний - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть массив избыточных состояний, который включает в себя некоторые личные данныеЭтот массив заполняется новыми элементами, когда я нажимаю кнопку.Пример массива ниже

1-й щелчок

ЩЕЛКНИТЕ - ИМЯ - ВОЗРАСТ

  1     - DAVID - 48
  1     - JOSH  - 21
  1     - MARIA - 55

после второго щелчка я хочу увидеть свой массив, например

  1     - DAVID - 48
  1     - JOSH  - 21
  1     - MARIA - 55
  2     - JOHN - 70
  2     - MICHAEL - 18
  2     - SYLVESTER - 33

и третий, четвертый .... и т. Д. Итак, первый столбец - это число нажатий кнопок.

Но проблема в том, что все старые данные щелкают по номеру, который изменяется с новым номером, таким как (после второго щелчка)

  2     - DAVID - 48
  2     - JOSH  - 21
  2     - MARIA - 55
  2     - JOHN - 70
  2     - MICHAEL - 18
  2     - SYLVESTER - 33

Я никогда не изменяю старые данные в массив, я просто добавляю новые данные, я не могу понять, почему старые номера CLICIK меняются с НОВЫМ НОМЕРОМ ЩЕЛЧКА

Мои проверенные коды Redux

case "ADDNEWDATA": {
     let arr = [...state.mydata];
     arr = [...arr, action.payload.newdata]
     return Object.assign({}, state, { mydata: arr })

}

или

 case "ADDNEWDATA": {
     let arr = [...state.mydata];
     action.payload.newdata.map((item) => {
            arr = arr.push(item)
     })
     return Object.assign({}, state, { mydata: arr })

}

или

 case "ADDNEWDATA": {
     return Object.assign({}, state, { mydata: [...state.mydata, action.payload.newdata] })

}

Я думаю, что у меня нет проблем с кодом, но массив выглядит не так: (

1 Ответ

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

Я бы хотел помочь, но не могу понять, что вы делаете из вышеперечисленного.Итак, после первого клика вы указали {mydata: [{}, {}, {}]}?И ваша полезная нагрузка будет новым массивом [{}, {}, {}], так что если вы просто вернете [] .concat (state.mydata, полезная нагрузка)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...