⊗jsrtPmHkUCt 9 of 47 menu

Хук контекста useContext en React

En esta lección continuaremos trabajando con el contexto. Ahora construiremos un árbol de componentes. Para empezar, en un archivo separado crearemos el componente React BigBox:

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

Importémoslo y coloquémoslo en nuestro componente principal App:

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

Para mayor claridad, apliquemos algunos estilos a los divs. Para ello crearemos el archivo styles.css:

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

No olvidemos importarlo en App.js:

import './styles.css';

Ahora en un archivo separado crearemos el componente MiddleBox:

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

Y lo colocaremos en la caja grande BigBox:

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

Hagamos lo mismo con la cajita pequeña SmallBox:

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

Coloquemos dos de estas cajitas en MiddleBox:

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

Hemos construido el árbol. Y ahora queremos pasar desde nuestro App, supongamos, a SmallBox un valor de cadena 'small box :)', sin usar props, sino usando el contexto (por si nuestra aplicación de cajas crece hasta alcanzar grandes dimensiones).

Ya creamos y conectamos el archivo con el contexto MyContext.js en la lección anterior.

El siguiente paso que haremos - envolveremos BigBox en el proveedor de contexto, que es una propiedad de nuestro objeto de contexto MyContext. Ahora todos los componentes incluidos en esta construcción (y esto incluye todas las cajas anidadas en BigBox) podrán acceder y suscribirse a los cambios del contexto. Como valor del contexto pasamos el deseado 'small box :)':

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

Y ahora solo queda leer el valor del contexto. Queríamos usarlo en SmallBox, así que importemos allí el archivo de contexto MyContext.js y el hook useContext:

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

Leamos usando useContext el valor del contexto en la variable name:

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

Hemos suscrito SmallBox a este contexto y, si este cambia, este componente también se actualizará.

Y, finalmente, sustituimos el valor de la variable name en lugar de los puntos suspensivos:

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

En el componente vacío App cree el componente Parent, y en él el componente Daughter, y en Daughter el componente Grandson. Usando el contexto, pase desde App el valor de la edad 42, y con la ayuda de useContext muéstrelo en el componente Daughter.

Y ahora en el componente Grandson muestre el valor de la edad, pero dividido por 2.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar