Pokračujte s kódem z předchozího cvičení. Nyní musíme do aplikace.
- Aplikace nám správně zobrazuje obličej, který máme nastavený jako výchozí hodnotu v kontextu. My ale samozřejmě chceme, abychom mohli obličej i měnit pomocí záložek v pravé straně aplikace.
- Jednotlivé záložky tvoří komponenty
EyesSelector
,MouthSelector
aColorSelector
. Zaměřme se nyní na výběr očí, ale postup bude stejný pro všechny tři komponenty. - Uvnitř komponenty importujeme pole dat ze souboru
src/data.js
. Pomocí mapování zobrazuje pro každou položku v poli obrázek představující jeden typ očí. - Přidejte do komponenty náš context a získejte z něho hodnotu pro vybrané oči. Nezapomeňte, že hodnota je ID očí, ne jejich index v poli.
- Na obrázek, jehož ID odpovídá hodnotě
eyes
z contextu přidejte tříduactive
, abychom viděli, které oči jsou právě vybrané. Pokud máte vše správně, měl by se kolem vybrané položky objevit tlustší černý rámeček. - Naše komponenta zatím funguje tak, že při kliknutí na obrázek se zavolá funkce
handleClick
, která do konzole vypíše ID vybraného obrázku. My nechceme ID vypisovat do konzole, ale potřebujeme jeho hodnotu dostat do stavusettings
uvnitř komponentyApp
. Tento stav se totiž propíše do hodnoty našeho contextu a my budeme mít vybrané oči přístupné v celé aplikaci. - Vytvořte v
App
funkcichangeEyes
, která jako parametr přijme hodnotu (ID vybranýchočí) a nastaví jí do vlastnostieyes
stavusettings
. - Tuto funkci přidejte do contextu, aby k ní měli přístup všechny komponenty, které ji budou potřebovat.
- Uvnitř komponenty
EyesSelector
funkci z contextu naimportujte a zařiďte, aby se zavolala se správným parametrem, když se klikne na obrázek očí. - Pokud jste vše udělali správně, můžete nyní klikáním na různé oči měnit hlavní emotikon.
- Opakujte celý postup i pro ústa a barvy.