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,MouthSelectoraColorSelector. 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ě
eyesz 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 stavusettingsuvnitř 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
AppfunkcichangeEyes, která jako parametr přijme hodnotu (ID vybranýchočí) a nastaví jí do vlastnostieyesstavusettings. - Tuto funkci přidejte do contextu, aby k ní měli přístup všechny komponenty, které ji budou potřebovat.
- Uvnitř komponenty
EyesSelectorfunkci 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.