Construyendo el Carrito de Compras: useContext
Clase 28 de 33 • Curso de Desarrollo de Aplicaciones Web con Gatsby JS
Contenido del curso
- 24

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

Manejo de Gatsby Templates
13:39 - 26

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

StaticQuery vs. useStaticQuery
03:23 - 28

Construyendo el Carrito de Compras: useContext
08:18 - 29

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

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

Comprando productos
08:34
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);