Booleovské hodnoty ve stavu

Stav, který je true, nebo false, se hodí na všechno, co je buď zapnuté, nebo vypnuté: podrobnosti jsou vidět, nebo ne; kapela je mezi oblíbenými, nebo není; nabídka je otevřená, nebo zavřená.

const [otevrene, setOtevrene] = useState(false);

function prepniPodrobnosti() {
    setOtevrene(!otevrene);
}

return (
    <article className="karta">
        <h2>Plecháčci</h2>
        <button onClick={prepniPodrobnosti}>
            {otevrene ? "Skrýt podrobnosti" : "Ukázat podrobnosti"}
        </button>
        {otevrene && <p>Stan, sobota 21:00</p>}
    </article>
);

!otevrene je opak toho, co tam je teď: z false se stane true a z true se stane false. Jedno tlačítko tak podrobnosti otevře a to samé tlačítko je zase zavře.

O tom, co stránka ukáže, rozhodují podmínky z lekce Seznamy a podmínky: ? : vybere text tlačítka a && ukáže odstavec jen tehdy, když je otevrene rovno true. Když je false, odstavec není skrytý: na stránce vůbec není.

Takhle aplikace v Reactu obvykle fungují. Stav říká, jak se věci mají, a JSX popisuje, jak stránka v každém případě vypadá. Prvky sami nepřidáváte ani neodebíráte. Změníte stav a zbytek udělá React.

Booleovská hodnota může vybrat i třídu, aby CSS prvek obarvilo jinak:

<article className={oblibena ? "karta oblibena" : "karta"}>

Booleovské proměnné pojmenujte tak, aby se název dal číst jako otázka s odpovědí ano, nebo ne: otevrene, oblibena, prihlaseny. Pak se otevrene && … čte skoro jako věta.

Pokyny

Kliknutí na Ukázat podrobnosti ukáže pod tlačítky odstavec Hlavní pódium, sobota 22:30 a na tlačítku pak bude Skrýt podrobnosti. Další kliknutí odstavec zase schová a na tlačítku bude znovu Ukázat podrobnosti. Použijte stav otevrene s počáteční hodnotou false.

Hvězdička označí kapelu jako oblíbenou. Kliknutí změní ☆ na ★ a dá prvku article třídu oblibena, další kliknutí vrátí obojí zpět. Použijte druhý stav, oblibena.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

Zpět

3/13

Další