⊗jsrxPmSDSSC 35 of 57 menu

Cambio de la estructura del estado en Redux

La primera etapa que implementaremos para la interacción de nuestra aplicación Redux con algún servidor externo es la obtención de datos almacenados en él al iniciar la aplicación. Pero antes, introduzcamos algunos cambios en nuestra aplicación.

Abramos nuestra aplicación de productos, y en ella el archivo productsSlice.js. Presten atención a la definición de initialState. Inicialmente, nuestro segmento (slice) de productos productsSlice es un array que contiene objetos (en nuestro caso hay dos) con datos de productos. En primer lugar, dado que ahora vamos a cargarlos desde el servidor, necesitamos eliminarlos del initialState. En segundo lugar, enviaremos solicitudes API al servidor y será importante conocer su estado. Teniendo en cuenta estas dos cosas, reorganicemos initialState. Que ahora sea simplemente un objeto con los campos products (inicialmente no habrá datos aquí, solo un array vacío), status y error. Ahora nuestro código para initialState será un poco más corto:

const initialState = { products: [], status: 'idle', error: null, }

Por ahora hemos establecido el estado 'idle' (inactivo), ya que inicialmente no enviamos ninguna solicitud, pero en general cambiará y puede tomar valores como 'loading' (cargando), 'succeeded' (éxito), 'failed' (fallo). Recuerden que para denotar el estado pueden elegir los nombres que les resulten convenientes.

Bajemos más en el código. Tras cambiar el initialState, debemos modificar también el código donde trabajamos con este estado en las funciones reductoras. Miremos el código para productAdded:

state.push(action.payload)

Ahora los nuevos productos los agregaremos no simplemente al state de productos, sino a su propiedad state.products. Por lo tanto, reemplacemos la línea anterior por:

state.products.push(action.payload)

En consecuencia, realicemos los mismos cambios para el reductor reactionClicked. En lugar de:

const currentProduct = state.find((product) => product.id === productId)

Ahora será:

const currentProduct = state.products.find((product) => product.id === productId)

Reemplacen ustedes mismos state por state.products en el código del reductor productUpdated.

Abran su aplicación de estudiantes. Abran en ella el archivo studentsSlice.js. Que ahora su initialState tenga tres propiedades: students, status, error - reorganicenlo, como se muestra en la lección.

Introduzcan los cambios correspondientes más abajo en el código. Reemplacen state por state.students en el código para sus tres funciones reductoras.

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