Trabajo con datos en Redux
En la sección anterior implementamos un esquema básico de trabajo de Redux y ahora conoces los principios principales de funcionamiento de una aplicación Redux. En las siguientes lecciones, comenzaremos a agregar funcionalidad a nuestra aplicación de productos y trabajaremos con los datos.
Dado que la aplicación se irá llenando de nuevos
componentes y rutas, hagamos una cosa
con el enrutamiento. Abra la aplicación de
productos, luego el archivo root.jsx. Importe
en él el componente Outlet, y elimine
las líneas con la importación de ProductsList
y NewProductForm:
import { Outlet } from 'react-router-dom'
Ahora el componente Root se mostrará
en la ruta raíz '/', y todos los otros componentes
en las rutas hijas dentro de Outlet. Para ello, corrijamos un poco
el maquetado del div #main-page para el componente Root:
<div id="main-page">
<h2>My Products App</h2>
<hr></hr>
<NewProductForm />
<ProductsList />
</div>
Aquí pondremos Outlet en lugar de
los componentes NewProductForm y
ProductsList:
<div id="main-page">
<h2>My Products App</h2>
<hr></hr>
<Outlet />
</div>
Ahora mostraremos el formulario para agregar productos
en ProductsList. Abramos
el archivo de este componente y agreguemos la importación del formulario:
import { NewProductForm } from './NewProductForm'
Y ahora agreguemos el componente del formulario justo antes de la lista de productos. Ahora nuestro maquetado se verá así:
return (
<div>
<NewProductForm />
<div>
<h2>Products</h2>
{dispProducts}
</div>
</div>
)
Añadamos el estilo para la clase products-list
en index.css:
.products-list {
display: flex;
flex-direction: column;
}
Solo nos queda hacer los cambios
en el componente principal App. Abramos
App.jsx e importemos en él el componente
ProductsList:
import { ProductsList } from './parts/products/ProductsList'
Luego, para nuestra única ruta por ahora,
que es la raíz, agreguemos la
propiedad children:
const router = createBrowserRouter([
{ path: '/', element: <Root />, children: [] },
])
Y escribamos como valor de esta propiedad
la primera ruta hija. Como ruta
establezcamos 'products'. Ahora en esta
dirección se mostrará
nuestra lista de productos ProductsList:
children: [
{
path: '/products',
element: <ProductsList />,
},
],
Ejecutemos nuestra aplicación y asegurémonos de que
no hayamos roto nada. En la raíz '/' vemos
solo el título. Y el formulario y la lista de productos
se han escondido en la dirección '/products'.
Abra su aplicación de estudiantes.
En el archivo root.jsx reemplace los componentes
StudentsList y NewStudentForm
por Outlet.
Ahora permita que el formulario para agregar un estudiante
se muestre en su StudentsList.
Realice los cambios en su componente principal
App. Agregue a la ruta raíz una hija,
con la ruta '/students', mediante la cual
se mostrará su StudentsList. Ejecute
la aplicación y asegúrese de que todo
funcione.