Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

541
Visualizações
¿Por qué react-router-dom useParams hook no funciona dentro de Context?

Tengo un contexto compartido entre un grupo de páginas de perfil. El contexto es responsable de cargar y configurar el perfil del usuario desde una base de datos, así:

 const Profile = props => { const { userProfile } = useContext(ProfileContext); return userProfile && ( <div className="profile-container"> ...stuff </div> ); }; export default Profile;

...rutas:

 <BrowserRouter> <Header /> <main className="main-container"> <Switch> ...other routes <ProfileContextProvider> <Route path="/profile/:id" exact component={Profile} /> <Route path="/settings" exact component={Settings} /> </ProfileContextProvider> </Switch> </main> <Footer /> </BrowserRouter>

El contexto en sí es muy simple:

 import React, { useState, useEffect } from "react"; import { useParams } from "react-router-dom"; export const ProfileContext = React.createContext({ userProfile: {}, setUserProfile: () => {} }); ProfileContext.displayName = "ProfileContext"; const ProfileContextProvider = props => { const { id } = useParams(); //always undefined! const [userProfile, setUserProfile] = useState(null); useEffect(() => { loadData(); }, []); const loadData = async () => { ...api call to load data }; return ( <ProfileContext.Provider value={{ userProfile, setUserProfile }}> {props.children} </ProfileContext.Provider> ); }; export default ProfileContextProvider;

Sin embargo, ese uso de useParams() allí no funciona. El "id" siempre está indefinido. Si muevo este uso de useParams() al propio componente Profile, funciona bien. Esto no me sirve de nada, porque necesito tomar una decisión sobre la ruta, al cargar datos en el contexto, antes de cargar todo el perfil. ¡Necesito que funcione en el contexto!

es posible? ¿Estoy haciendo algo mal?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El contexto es en sí mismo una gestión diferente y el parámetro de consulta debe apoyarse desde la página a la variable de conjunto de contexto y luego funciona

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda