Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
createContext/ useContext en React no funciona como se esperaba

No puedo entender por qué mi uso de createContext y useContext no funciona en mi aplicación React.

Tengo mi archivo de contexto así:

 // @flow import { createContext, useContext } from "react"; export type CountryIndexProviderType = { index: number, }; const CountryContext = createContext<CountryIndexProviderType>({ index: 0, }); type CountryContextProviderProps = { children: Node, index: number, }; const CountryContextProvider = ({ children, index, }: CountryContextProviderProps) => { return ( <CountryContext.Provider value={{ index }}> {children} </CountryContext.Provider> ); }; const useCountryIndexContext = () => useContext(CountryContext); export { CountryContext, CountryContextProvider, useCountryIndexContext };

Y mi componente donde estoy usando Provider para establecer el valor del index (número):

 import { CountryContextProvider } from "/EnteredCountriesContext"; return ( {objects.map((index) => ( <StyledWrappingContainer> <StyledProgress>{index + 2}</StyledProgress> <CountryContextProvider index={index}> // NOT SURE WHAT SHOULD BE HERE? </CountryContextProvider> </StyledWrappingContainer> ))} );

Y mi segundo componente, donde estoy usando useContext para pasar el valor del index a un componente con estilo y representar el valor:

 import { useCountryIndexContext } from "/EnteredCountriesContext"; const { index } = useCountryIndexContext(); <StyledWrappingContainer> <StyledProgress> <StyledProgress>{index + 2}</StyledProgress> </StyledProgress> </StyledWrappingContainer>

El segundo componente siempre representa el valor de índice predeterminado de 2 (índice predeterminado = 0 + 2 agregados en el procesamiento). ¿Alguien puede sugerir por qué mi valor index no se actualiza?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede acceder a los valores desde el contexto después de envolverlos dentro del Proveedor.

Aquí:

 return <CountryContext.Provider value={{ index }}></CountryContext.Provider>;

El proveedor no tiene hijos, por lo que el índice nunca se transfiere a otro componente.

Te sugiero que uses accesorios para children .

 const CountryContextProvider = ({ index,children }: CountryContextProviderProps) => { return <CountryContext.Provider value={{ index }}>{children}</CountryContext.Provider>; };

Finalmente, pase cualquier componente que desee usar index from context, como elementos secundarios de CountryContextProvider :

 import { CountryContextProvider } from "/EnteredCountriesContext"; return ( {objects.map((index) => ( <StyledWrappingContainer> <StyledProgress>{index + 2}</StyledProgress> <CountryContextProvider index={index}> <YourSecondComponent /> /// can have any props it needs, not necessary. </CountryContextProvider> </StyledWrappingContainer> ))} );

Ahora YourSecondComponent , donde recibe index.

 import { useCountryIndexContext } from "/EnteredCountriesContext"; const { index } = useCountryIndexContext(); <StyledWrappingContainer> <StyledProgress> <StyledProgress>{index + 2}</StyledProgress> </StyledProgress> </StyledWrappingContainer>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda