Construyendo el Carrito de Compras: useContext
Clase 28 de 33 • Curso de Desarrollo de Aplicaciones Web con Gatsby JS
Contenido del curso
Preparando el entorno
Fundamentos de Gatsby
Creando la vista con React
Graphql en Gatsby
Usando plugins en Gatsby
Stripe checkout
Generando páginas programáticamente
- 24

Creando páginas en función de los datos
08:57 min - 25

Manejo de Gatsby Templates
13:39 min - 26

Terminando la Vista de Detalle de los Productos
05:58 min - 27

StaticQuery vs. useStaticQuery
03:23 min - 28

Construyendo el Carrito de Compras: useContext
Viendo ahora - 29

Construyendo el Carrito de Compras: Vista
09:22 min - 30

Construyendo el Carrito de Compras: Agregar productos al carrito
08:44 min - 31

Comprando productos
08:34 min
Gatsby a producción
Resumen
React Context nos ayuda a crear un estado global, una forma de compartir el estado de nuestra aplicación entre todos los componentes, sin importar en qué lugar se encuentren y sin necesidad de pasar y pasar props.
Además, useContext nos permite usar todas las características de React.Context con la sintaxis de los hooks. En este caso, vamos a usar todas estas herramientas para construir nuestro carrito de compras.
- Crear el contexto:
// context.js
import React, { createContext, useState } from 'react';
export const CartContext = createContext();
export const CartProvider = ({ children }) => {
const [cart, setCart] = useState([]);
const addToCart = element => {
setCart([ ...cart, element ]);
}
return (
<CartContext.Provider value={{ cart, addToCart }}>
{children}
</CartContext.Provider>
);
}
- Encerrar toda nuestra aplicación (o las partes donde queremos compartir el estado) en el componente
<Provider>:
// gatsby-browser.js
exports.wrapRootElement = ({ element }) => (
<CartProvider>
<GlobalStyles />
<GlobalStyles>{element}</GlobalStyles>
</CartProvider>
);
- Consumir el Contexto desde cualquier componente:
const { cart } = useContext(CartContext);