⊗jsrtPmHkUCt 9 of 47 menu

Kontextový hook useContext v Reactu

V této lekci budeme pokračovat v práci s kontextem. Nyní postavíme strom komponent. Pro začátek v samostatném souboru vytvoříme React komponentu BigBox:

function BigBox() { return ( <p>bigbox</p> ); }

Importujeme ji a umístíme ji v naší hlavní komponentě App:

import BigBox from './BigBox'; function App() { return ( <BigBox /> ); }

Pro větší názornost trochu naformátujeme divy. Pro to vytvoříme soubor styles.css:

div { border: 1px solid blue; margin: 10px; text-align: center; max-width: 300px; }

Nezapomeneme jej importovat do App.js:

import './styles.css';

Nyní v samostatném souboru vytvoříme komponentu MiddleBox:

function MiddleBox() { return ( <p>middlebox</p> ); }

A vložíme ji do velké krabice BigBox:

import MiddleBox from './MiddleBox'; function BigBox() { return ( <div> <MiddleBox /> </div> ); }

Provedeme totéž s malou krabičkou SmallBox:

function SmallBox() { return ( <p>Jsem ... </p> ); }

Umístíme dvě takové krabičky do MiddleBox:

import SmallBox from './SmallBox'; function MiddleBox() { return ( <div> <SmallBox /> <SmallBox /> </div> ); }

Strom jsme postavili. A nyní chceme z našeho App předat, předpokládejme, do SmallBox řetězcovou hodnotu 'small box :)', a to ne pomocí props, ale pomocí kontextu (což se hodí, pokud naše krabičková aplikace naroste do obrovských rozměrů).

Soubor s kontextem MyContext.js jsme již vytvořili a připojili v minulé lekci.

Další krok, který uděláme - obalíme BigBox v poskytovateli kontextu, který je vlastností našeho objektu kontextu MyContext. Nyní všechny komponenty, uzavřené v této konstrukci (a to jsou všechny krabičky, vnořené do BigBox) budou moci získat přístup a přihlásit se ke změnám kontextu. Jako hodnotu kontextu předáváme požadovanou 'small box :)':

function App() { return ( <MyContext.Provider value="small box :)"> <BigBox /> </MyContext.Provider> ); }

A nyní zbývá přečíst hodnotu kontextu. Chtěli jsme ji použít v SmallBox, proto importujeme tam soubor kontextu MyContext.js a hook useContext:

import { useContext } from 'react'; import { MyContext } from './MyContext.js';

Přečteme pomocí useContext hodnotu kontextu do proměnné name:

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>Jsem ... </p> </div> ); }

Přihlásili jsme SmallBox k tomuto kontextu a pokud se změní, tato komponenta bude také aktualizována.

A nakonec dosadíme hodnotu proměnné name místo tří teček:

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>Jsem {name} </p> </div> ); }

V prázdné komponentě App vytvořte komponentu Parent, a v ní komponentu Daughter, a v Daughter komponentu Grandson. Použijte kontext, předejte z App hodnotu věku 42, a pomocí useContext ji vypište v komponentě Daughter.

A nyní v komponentě Grandson vypište hodnotu věku, ale vydělenou 2.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout