⊗jsrtPmHkUCt 9 of 47 menu

Hooken useContext för kontext i React

I den här lektionen kommer vi att fortsätta arbeta med kontext. Nu ska vi bygga ett träd av komponenter. Till att börja med, skapa en React-komponent BigBox i en separat fil:

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

Importera den och placera den i vår huvudkomponent App:

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

För att göra det mer visuellt, låt oss styla div-elementen lite. För att göra detta, skapa filen styles.css:

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

Kom ihåg att importera den i App.js:

import './styles.css';

Nu skapar vi komponenten MiddleBox i en separat fil:

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

Och sätt in den i den stora lådan BigBox:

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

Låt oss göra samma sak med den lilla lådan SmallBox:

function SmallBox() { return ( <p>Jag är ... </p> ); }

Låt oss placera två sådana lådor i MiddleBox:

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

Trädet har vi byggt. Och nu vill vi från vår App skicka, låt oss säga, till SmallBox ett strängvärde 'small box :)', utan att använda props, utan att använda kontext (tänk om vår lådapplikation växer till enorma storlekar).

Filen med kontexten MyContext.js har vi redan skapat och anslutit i förra lektionen.

Nästa steg som vi kommer att göra är att omsluta BigBox med en kontextprovider, som är en egenskap hos vårt kontextobjekt MyContext. Nu kommer alla komponenter som ingår i denna konstruktion (det vill säga alla lådor nästlade i BigBox) att kunna få åtkomst och prenumerera på kontextförändringar. Som kontextvärde skickar vi det önskade 'small box :)':

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

Och nu återstår bara att läsa kontextvärdet. Vi ville använda det i SmallBox, så vi importerar kontextfilen MyContext.js dit och hooken useContext:

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

Låt oss läsa kontextvärdet med hjälp av useContext in i variabeln name:

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

Vi har prenumererat SmallBox på denna kontext och, om den ändras, kommer denna komponent också att uppdateras.

Och slutligen, sätt in värdet av variabeln name istället för ellipsen:

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

I en tom komponent App, skapa komponenten Parent, och i den komponenten Daughter, och i Daughter komponenten Grandson. Använd kontext för att skicka från App värdet för ålder 42, och med hjälp av useContext, visa det i komponenten Daughter.

Och nu, i komponenten Grandson, visa åldersvärdet, men delat med 2.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa