Buscador de productos
Clase 26 de 31 • Curso de React.js con Vite.js y TailwindCSS
Contenido del curso
Clase 26 de 31 • Curso de React.js con Vite.js y TailwindCSS
Contenido del curso
Pedro Wattimo
Kevin J. Zea Alvarado
Jorge Rivadeneira Cevallos
Reynaldo Francisco Moreno Briceño
Jeffry Almonte dely
Alexandra Gabriela
david jurado
Germán de Jesús Hernández García
Colima Software
Miguel Angel Reyes Moreno
Jean Bustamante
Miguel Angel Reyes Moreno
Alejandro Calderón
Rolando Fernández
Cristian Leonardo Castañeda Olarte
Platzi
Andres Felipe Camacho Rodriguez
Alicia Rivas
Gianluca Enzo Procopio
Davinson Granada Valencia
Buenaas, Tengo una duda... utilizar el context de esta manera en el que lo venimos utilizando no estaría en contra de los principios SOLID ya que está teniendo mucho más que una sola responsabilidad? Perdón si dije una burrada :')
Hola, Pedro. Genuinamente, tu pregunta me parece una gran pregunta. Me dejó pensando un buen rato.
A la conclusión que llegué es que, efectivamente, el context sí cumple con una única responsabilidad, que es proveer un estado global a la aplicación. En sí, el estado global es el objeto que retorna cada uno de los «subestados» con useState.
Por lo tanto, la responsabilidad del context es proveer ese estado global, pero cada uno de los «subestados» tiene su propia responsabilidad al manejar su propio estado.
Esto no es necesariamente la verdad. Es simplemente a la conclusión que llegué. Me interesa saber tu opinión sobre esta idea
Estoy de acuerdo, incluso se podría dividir los providers y los context en directorios separados y así por ejemplo tener un Provider para Orders, otro para Items (o Productos), Usuarios, etc. y a su vez los correspondientes Context en otro directorio: Orders, Items (o Productos), Usuarios, etc.
En mi caso dentro de nuestro archivo de context.jsx cree el estado de nuesta searchBar y la funcion.
// GET Producrs by SerachTitleBar const [searchTitleBar, setSearchTitleBar] = useState("") const Search = (event) => { setSearchTitleBar(event.target.value) }
Luego exportamos searchTitleBar y la funcion Search, y quedaria asi
function Home() { const context = useContext(ShoppingCartContext); console.log(context.searchTitleBar) return ( <> <div className="m-4"> <input className="border border-black rounded-lg w-80 p-4 mb-4 focus:outline-none" type="text" placeholder="Search" onChange={context.Search} /> </div> <div className="grid gap-4 grid-cols-3 w-full max-w-screen-md"> {context.product?.map((product) => ( <Card key={product.id} data={product} /> ))} </div> <ProductDetail /> </> ); }
Yo voy trabajando dos archivos a la vez, o sea uno que es igual como la profe Teff lo hace y otro a mi manera, y desde la primera clase lo habia hecho así, consumí la API desde el contexto, porque entendía que la aplicación entera necesitaría de los datos de la API
Le puse un icono para completar :)
Hola era para saber si alguien sabe como quitar esa X en un input que la verdad me tiene bastante fastidiado, siempre aparecexdd o al menos como puedo buscar para quitarla, como se llama o que :(
¿Podrías poner una foto de tu código? Es muy raro que tengas eso.
Estás usando el input de tipo search, si no quieres la funcionalidad de borrado de contenido (que eso es la x), usa el input de tipo text
Bueno, yo hace tiempo hice una página con Next.js y Tailwind donde implementé una barra de búsqueda Hajime No Ippo Y les comparto el código donde está la lógica para la barra de búsqueda repo de github
da error la página :(
Error 504, GATEWAY TIMEOUT Eso me pasa por usar un servicio gratuito xD a veces solo es cuestión de tiempo y esperar, pero es molesto ese detalle.
No entiendo porque no puedo usar un estadom para transportar los datos de la API:
import { createContext, useState } from "react"; const ShoppingCartContext = createContext(); import { v4 as uuidv4 } from "uuid"; import useFetch from "../Hooks/useFetch"; import { urlApi } from "../Data"; const ShoppingCartProvider = ({ children }) => { //Items from the API ♦: const [items, setItems] = useState(null); setItems(useFetch(`${urlApi}/products`)); // const items = useFetch(`${urlApi}/products`);
En el código que compartes no se ve el useEffect, lo único que puedo asumir es que cuando usaste useEffect no le pasaste el segundo argumento al useEffect o pusiste como dependencia del useEffect el estado de items que también estaría mal
Hola, tengo un problema. Y es que cada vez que escribo un carácter en bolsa en el input se vuelven a pintar las imágenes, ¿alguien sabe porque sucede y como lo soluciono?
Es posible que haya un evento de cambio en el input que está provocando la repintura de las imágenes. Verifica si hay algún código que esté escuchando ese evento y causando ese comportamiento. También puedes revisar si hay alguna función que se esté ejecutando cada vez que se escribe en el input y que esté actualizando las imágenes. Si encuentras alguna función o evento relacionado, puedes modificarlo para que solo se ejecute cuando sea necesario, evitando así la repintura innecesaria de las imágenes.
como crear una Api propia con json?
Como hago para que mi la card de my order salga en home?
Lo hice así:
{loading && products.map(product=>{ if(product.title.toLowerCase().includes(searchValue.toLowerCase())){ return<Card key={product.id} name={product.title} category={product.category.name} img={product.images[0]} price={product.price} description={product.description} id={product.id} /> } })}
Este curso me da muchos errores