Reactтеги стейттеги логикалык мааниси

Келгиле, стейтти жараталы inCart, ал продукт себеттеби же жокпу көрсөтөт:

jsxfunction App() {
  const [inCart, setInCart] = useState(false);
  
  return <div>
    
  </div>;
}

false мааниси продукт себетте эмес экенин, ал эми true мааниси себетте экенин билдирсин. Бул жөнүндө маалыматты үч компоненттүү оператор аркылуу чыгаралы:

jsxfunction App() {
  const [inCart, setInCart] = useState(false);
  
  return <div>
    <span>{inCart ? 'себетте' : 'себетте эмес'}</span>
  </div>;
}

Эми баскычты жараталы, аны басканда продукт себетке кошулат:

jsxfunction App() {
  const [inCart, setInCart] = useState(false);
  
  return <div>
    <span>{inCart ? 'себетте' : 'себетте эмес'}</span>
    <button onClick={() => setInCart(true)}>баскыч</button>
  </div>;
}

Кодду өзгөртөлү, биринчи жолу басканда себетке кошуп, экинчи жолу басканда - себеттен алып салсын:

jsxfunction App() {
  const [inCart, setInCart] = useState(false);
  
  return <div>
    <span>{inCart ? 'себетте' : 'себетте эмес'}</span>
    <button onClick={() => setInCart(!inCart)}>баскыч</button>
  </div>;
}
Задание 1

Колдонуучуну бан кылуучу жана колдонуучуну бандан бошотуучу баскычтарды жасаңыз.

Задание 2

Мурунку тапшырманы өзгөртүңүз, эки баскычтан ар дайым тиешелүүсү гана көрүнсүн. Башкача айтканда, эгер колдонуучу банда болсо, анда бандан бошото турган баскыч көрүнсүн, ал эми банда болбосо - бан кыла турган баскыч көрүнсүн.