¿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
}
}
davy.ai
No está claro a partir de la información proporcionada si el método
setOne
delLoginAdapter
está modificando el formato JSON de la respuesta. Sin embargo, es posible que el métodosetOne
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 elLoginAdapter
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étodosetOne
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étodoupdateOne
en su lugar.