У меня есть демо здесь
Это простое приложение для корзины, в котором я размещаю товары с помощью кнопки, чтобы добавить продукт в список.
Корзина и функция добавления в корзину находятся в другом компоненте, чем продукты.
Как я могу вызвать функцию addToCart из компонента приложения, где нажата кнопка.
const handleClick = (
e: React.MouseEvent<HTMLInputElement, MouseEvent>,
item: IProduct
) => {
e.preventDefault();
// Call the add to cart function
Cart.addToCart(item);
};
Вы должны реализовать функцию addToCart в компоненте приложения (отец) и передать функцию компоненту корзины (дочернему) в качестве реквизита, состояние корзины также должно обрабатываться в компоненте приложения.
Реализация: https://stackblitz.com/edit/react-ts-gf9r64?file=index.tsx
Удачи!
Вы можете добавить эту функцию в parent
и передать ее как props
в дочернем элементе, чтобы он также мог получить доступ к функции addToCart
.
Stackblitz: https://stackblitz.com/edit/react-ts-qdpl45?file=Cart.tsx
вы можете создать функцию, а не обратный вызов как свойство, не держите свой список в корзине