Estoy tratando de establecer una parte del estado dentro de un reductor, pero necesito acceder a parte del estado inicial que está anidado.

Lo que estoy tratando de hacer:

  return {
        ...state,
        list: action.payload,
        filter: action.params,
        filter.totalPages : action.totalPages,
      };

Sin embargo, esto no funciona, he intentado hacer filter ['totalPages'] y tampoco funciona. ¿Cómo y cuál es la mejor práctica para hacer esto?

0
Taylor Austin 30 oct. 2017 a las 23:06

3 respuestas

La mejor respuesta

También debe usar el operador de propagación para el objeto de filtro

  return {
    ...state,
    list: action.payload,
    filter: {
       ...action.params,
       totalPages: action.totalPages
    }
  };
3
Slawa Eremkin 30 oct. 2017 a las 20:08
return {
        ...state,
        list: action.payload,
        filter: action.params,
        [filter.totalPages] : action.totalPages,
      };

Para obtener más información, consulte Claves de propiedad calculadas en es6

1
Shishir Arora 30 oct. 2017 a las 20:09
return Object.assign({}, state, {
      ...state,
      {
        list: action.payload,
        filter: {
          ...action.params,
          totalPages: action.totalPages
        }
      }
  })

Probablemente falte Object.assign échale un vistazo

1
Uğur Erdal 30 oct. 2017 a las 20:52