este es mi archivo ProductCard.jsx Aquí agregué un handleFavouriteClick para que sea equivalente a la función pasada y para usarlo en agregar y eliminar archivos
export default function ProductCard(props) { const { id, title, pictures, sizes, } = props.product const [favored, toggleFavored] = useFavorite(id) return ( <div className="group"> <Heart className={cn( 'h-4 w-4 mt-1 cursor-pointer stroke-1', favored ? 'stroke-red-400 fill-red-400 animate-like' : 'stroke-gray-600 ', )} onClick={()=> props.handleFavouriteClick(props.product)} /> </div> <Link to={`/products/${id}`}> <h3 className="mt-2 text-base font-light text-gray-600">{title}</h3> </Link> </div> ) }
y este es Home.jsx .aquí pasé a handleFavouriteHaga clic en la función agregando un producto importado de otro archivo.cuando hago clic en el corazón, sale el error anterior
const theme = useTheme(); const { data } = useSearchProductsQuery(); const isTablet = useMediaQuery(theme.breakpoints.down("md")); const [addFavouriteProduct] = useFavorite(product) return ( <Container className="pl-10 pr-10"> <Banner /> <InsChapter/> <Chapter/> <Chapter2/> {isTablet ? ( <SearchFilter/> ): null} <div style={{display:'flex', justifyContent:'center'}}> {isTablet ? null : ( <SearchFilterSideBar/> )} <div className="grid grid-cols-2 mt-4 gap-y-5 gap-x-2 sm:gap-y-10 sm:gap-x-4 lg:grid-cols-3"> {React.Children.toArray( data?.content.map(product => <ProductCard handleFavouriteClick={addFavouriteProduct} product={product}/>), )} </div> </div> </Container> ) }
Por favor, ayúdame.
Creo que useFavorite() tal vez devuelva muchas funciones y variables. Entonces, si desea utilizar la función addFavouriteProduct de useFavorite(), debe escribir así.
const {addFavouriteProduct} = useFavorite(product)
Por favor, intente esto. Mejor