⊗jsrxPmWFRAA 17 of 57 menu

Reducer y action en Redux

En la lección anterior terminamos el formulario para agregar producto y lo mostramos en la página principal. Pero por ahora los datos agregados no se guardan, en otras palabras el nuevo producto no se añade a los existentes en el store. Arreglemos esto.

Para empezar en nuestra aplicación de productos abriremos el archivo productsSlice.jsx y escribiremos en la propiedad reducer para createSlice la función productAdded, que se encargará de agregar el producto al store basándose en el estado actual y la acción que se le pasen. Cabe señalar que aquí no se nos pasa todo el state, sino solo la parte que corresponde a los productos (el slice products solo conoce sobre ella). El objeto con el nuevo producto estará en la propiedad payload del objeto action, que será generado por el manejador al hacer clic en el botón de guardar en el formulario. Como resultado el reducer productAdded se verá en el código de createSlice así:

const productsSlice = createSlice({ name: 'products', initialState, reducers: { productAdded(state, action) { state.push(action.payload) }, }, })

¿Y qué hay del action? Al principio del tutorial mencionamos que un action es un evento cualquiera, representado como un objeto, que describe lo que ocurrió en la aplicación. También hablamos so que se puede usar una función action creator, que nos creará dicho objeto, por ejemplo así:

const addProduct = newProduct => { return { type: 'products/productAdded', payload: newProduct } }

La buena noticia es que no necesitamos hacer nada, ya que la función createSlice lo hará por nosotros. Una vez que escribimos el reducer, ella automáticamente creará por nosotros el action creator con el mismo nombre. Solo nos queda exportar el action creator obtenido para su posterior uso en los componentes. Hagamos esto al final del archivo antes de exportar el reducer, así:

export const { productAdded } = productsSlice.actions export default productsSlice.reducer

Abra su aplicación de estudiantes, y luego el archivo studentsSlice.jsx, complete el valor del campo reducer para createSlice, como se muestra en la lección.

Agregue al final del archivo studentsSlice.jsx la exportación de la función action creator obtenida.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar