Tengo este estado:

const initialState = {
  selectedGroup: {},
  groups: {
    rows: [],
    total: null
  },
  offset: 0,
  range: 15,
  loading: false,
  error: null
}

En una reductor, tengo:

case Types.SUCCESS_LOAD_GROUPS:
   return {
      ...state,
      loading: false,
      groups: {
        total: action.groups.count,
        rows: [ ...state.groups.rows, action.groups.rows ]
      }
    }

Lo que quiero hacer es insertar todos los datos recibidos en action.groups.rows en groups.rows, manteniendo los valores antiguos. Pero está creando dos matrices en lugar de poner todas juntas, por ejemplo:

enter image description here

Valor de 'action.groups.rows'

enter image description here

0
Gustavo Bordin 25 jun. 2020 a las 22:30

2 respuestas

La mejor respuesta

Usar un operador de propagación en ambas matrices dentro de una nueva matriz sería una forma adecuada de actualizar las filas.

rows: [ ...state.groups.rows, ...action.groups.rows ]

2
Dhruv Shah 25 jun. 2020 a las 19:35

¿Has intentado concatenar las matrices, por ejemplo, en tu reductor?

rows: state.groups.rows.concat(action.groups.rows)
1
Thanos T. 25 jun. 2020 a las 19:34