Реагировать, вызвать функцию в другом компоненте

У меня есть демо здесь

Это простое приложение для корзины, в котором я размещаю товары с помощью кнопки, чтобы добавить продукт в список.

Корзина и функция добавления в корзину находятся в другом компоненте, чем продукты.

Как я могу вызвать функцию addToCart из компонента приложения, где нажата кнопка.

const handleClick = (
    e: React.MouseEvent<HTMLInputElement, MouseEvent>,
    item: IProduct
  ) => {
    e.preventDefault();
    // Call the add to cart function
    Cart.addToCart(item);
  };

вы можете создать функцию, а не обратный вызов как свойство, не держите свой список в корзине

Abdullah 24.12.2020 18:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
320
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны реализовать функцию 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

Другие вопросы по теме