Tengo un reductor para agregar comentarios de la siguiente manera
addComment: { reducer: (state,action)=>{ const { newId, comment } = action.payload console.log(newId) // functions that create an new comment entry with the newID and update state }, prepare: (input) =>{ return { payload: { ...input, newId: nanoid(), } } }Si llamo a dispatch dentro de mi aplicación de la siguiente manera, console.log muestra la identificación generada por nanoid(). Hasta aquí todo bien.
dispatch(addComment({comment: comment}))Sin embargo, si llamo al reductor dentro de otro reductor usando caseReducers, console.log devuelve undefined
commentSlice.caseReducers.addComment(state,{ payload: { comment : comment } })¿Cómo hago para que se ejecute la devolución de llamada de preparación cuando uso caseReducers.
Según los documentos , parece que si va a invocar usando la forma caseReducer, debe incluir el "tipo":
const slice = createSlice({ name: 'test', initialState: 0, reducers: { increment: (state, action: PayloadAction<number>) => state + action.payload, }, }) // now available: slice.actions.increment(2) // also available: slice.caseReducers.increment(0, { type: 'increment', payload: 5 })