es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué cambia el formato de mi JSON después de establecerlo en las entidades de Redux Toolkit?

Tengo un problema actual en mi adaptador de entidad después de recibir la respuesta de la API y establecer la carga útil en el estado, ocurre un cambio en el formato JSON. No sé si el método setOne de Redux Toolkit lo cambia automáticamente.

Formato Original:

{
    "id": "af3fbedf-4751-413b-abd5-074737b6edd2",
    "role_id": null,
    "first_name": "Geirge",
    "last_name": "Shaw",
    "email": "sdf@sdf.com",
    "email_verified_at": null,
    "username": "coder",
    "status": 1,
    "created_at": "2021-11-18T06:50:46.000000Z",
    "created_by": null,
    "updated_at": "2021-11-18T06:50:46.000000Z",
    "updated_by": null,
    "fullname": "Geirge Shaw",
    "token": "94|4O0z51gddqHxeCs5UhLysE9QoSsIOSlP2EYb9iFQ"
}

Nuevo formato después de establecer la respuesta en el estado:

af3fbedf-4751-413b-abd5-074737b6edd2: {id: 'af3fbedf-4751-413b-abd5-074737b6edd2', role_id: null, first_name: .....}

ExtraReducers se ve así:

extraReducers: {
  [LoginAuthentication.pending](state, action){
    state.isLoading = true
    state.isLoggedIn = false
  },
  [LoginAuthentication.fulfilled](state, {payload}){
    console.log(payload);
    state.isLoading = false
    LoginAdapter.setOne(state, payload)
    state.isLoggedIn = true
  },
  [LoginAuthentication.rejected](state, action) {
    state.isLoading = false
    state.isLoggedIn = false
  }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    No está claro a partir de la información proporcionada si el método setOne del LoginAdapter está modificando el formato JSON de la respuesta. Sin embargo, es posible que el método setOne esté normalizando los datos de respuesta para que coincidan con el esquema del adaptador de entidad.

    Para solucionar este problema, puede revisar la implementación del método setOne en el LoginAdapter y compararlo con el formato JSON original que recibió del API. Además, puede registrar el estado antes y después de llamar al método setOne para ver si hay cambios en los datos.

    También vale la pena señalar que el método setOne agregará o actualizará la entidad con el ID dado en el estado actual, pero no fusionará cambios a las propiedades existentes. Si necesita actualizar las propiedades de una entidad existente, puede usar el método updateOne en su lugar.

Comments are closed.