Как передать параметры между компонентами?

Подскажите как правильно передать значение в переменной(хука) в другой компонент(в Basket)?

Есть часть кода,

import React, { useState } from 'react';
import Array from '../myArray';
import './MainStyle.css';
import Basket from '../Basket/Basket';
const Main = () => {
    const [cartProduct, setCartProduct] = useState([]);
    const [listProducts] = useState(Array);

    const AddToBasket = (ID) => {
        // debugger
        const newCart = [...cartProduct, ID];
        const searchItem = newCart.find((item) => ID.id === item.id);
        if (searchItem) {
            searchItem.counter++;
        } else {
            searchItem = {
                ...ID,
                counter: 1
            }
            cartProduct.push(searchItem);
        }
        setCartProduct(newCart);
    }

    const itemList = listProducts.map((item) => {
        return (
            <div className="list-cart" key={item.id}>
                <img src={item.img} alt={item.name} />
                <h3>{item.name}</h3>
                <h4>{item.cost}</h4>
                <button onClick={() => AddToBasket(item)}>Add to cart</button>
            </div>
        )
    })
    
    return (
        <div className="content">
            <div className="block-content">
                <div className="block">{itemList}</div>
            </div>
            <Basket cartProduct={cartProduct} setCartProduct={setCartProduct} />
        </div>
    )
}
export default Main;

где выводиться товар на главной странице, под каждым товаром (карточки) есть кнопка "Добавить в корзину". При таком подходе, "Корзина" отображается под основным контентом, а мне нужно, чтоб при клике на "Корзина" в шапке сайте выводился товар именно в корзине. Вот здесь,

import React from 'react';
const Basket = ({ cartProduct, setCartProduct }) => {

    const showCart = cartProduct.map((item) => {
        return (
            <div className="list-cart1" key={item.id}>
                <img src={item.img} alt={item.name} />
                <h3>{item.name}</h3>
                <h4>{item.cost}</h4>
            </div>
        )
    })
    return (
        <div>
            <div className="basket">
                <div className="block">{showCart}</div>
            </div>

        </div>
    )
}
export default Basket;

При переходе на "Корзина", выбивает ошибку

TypeError: cartProduct is undefined

Вот остальной код,

import React from 'react';
import './App.css';
import Header from './Header/Header';
import Main from './Main/Main';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import Basket from './Basket/Basket';
const App = () => {

  return (
    <Router>
      <Header />
      <Switch>
        <Route exact path ="/" component={Main}/>
        <Route path="/basket" component={Basket} />
      </Switch>
    </Router>
  );
}

export default App;

Header.jsx

import React from 'react';
import './HeaderStyle.css';
import { Link } from 'react-router-dom';
const Header = () => {
    return (
        <header className="header">
            <div>
                <ul>
                    <li><Link to="/">Main</Link></li>
                    <li><Link to="/basket">Basket</Link></li>
                </ul>
            </div>
        </header>
    )
}

export default Header;

Подскажите как передать правильно выбранный товар в корзину(в другой компонент)? Заранее спасибо!


Ответы (0 шт):