Tengo Createslice y Reducer como este. Quiero imprimir mi estado dentro del reductor porque mi envío no funciona correctamente, pero cuando intento imprimir el estado.evento, obtengo esto.
[Proxy] 0: Proxy {} length: 1 __proto__: Array(0) export const eventSlice = createSlice({ name: 'event', initialState: { event: [], favouriteEvents: [], isFetching: false, isSuccess: false, isError: false, errorMessage: '', }, reducers: { alterFavourite: (state, action) => { // item = state.event.filter((item) => { // item.pk == parseInt(pk) // item.is_liked = !is_liked; // }) console.log(state.event) },Puedes usar la función actual :
Immer expone una
currentde exportación con nombre que crea una copia del estado actual del borrador. Esto puede ser muy útil para fines de depuración (ya que esos objetos no serán objetos Proxy y no se registrarán como tales). Además, las referencias acurrentse pueden filtrar de forma segura desde una función de producción. Dicho de otra manera,currentproporciona una instantánea del estado actual de un borrador.
RTK usa immer subyacente y reexporta estas funciones. El estado en el reductor es un objeto de draft , es una especie de contenedor o proxy del objeto simple de JavaScript.
Puedes hacerlo:
import { configureStore, createSlice, current } from '@reduxjs/toolkit'; export const eventSlice = createSlice({ name: 'event', initialState: { event: [], favouriteEvents: [], isFetching: false, isSuccess: false, isError: false, errorMessage: '', }, reducers: { alterFavourite: (state, action) => { // console.log(state.event); console.log('current state.event: ', current(state.event)); }, }, }); const store = configureStore({ reducer: { event: eventSlice.reducer, }, }); store.dispatch(eventSlice.actions.alterFavourite(null));Producción:
current state.event: [] versión del paquete: "@reduxjs/toolkit": "^1.6.1"