Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

143
Views
React-Query / React Router V5 inserta la variable de estado de la respuesta api en la ruta, pero solo cuando la respuesta ha terminado

En mi aplicación, tengo una llamada API que obtiene algunos datos (matriz de objetos), luego uso esto en un contexto y lo comparto en mi aplicación. Lo que quiero hacer es usar algunos de esos datos, es decir, el valor del objeto y prefijarlo en mis rutas. El manejo de la API se realiza a través de react-query.

He intentado simplemente acceder a la variable e insertarla de la siguiente manera:

 const Routing: React.FunctionComponent = () => { const { valueFromContext } = React.useContext(DataContext); const basePrefix = valueFromContext?.name; return ( <> <BrowserRouter > <Header /> <div className="App"> <Switch> <Route exact path={["/", "/dashboard"]}> <Redirect to={`/${basePrefix}/home`} /> </Route> <Route exact path={[`/${basePrefix}/home`, "/"]} component={Home} /> <Route exact path={`/account/:id`} render={(props: RouteComponentProps<any>) => <Account {...props} />} /> <Route component={NotFound} /> </Switch> </div> </BrowserRouter> </> ) }

Entonces, el problema es que esto es inconsistente, ya que a veces la url regresa como '/ indefinido / inicio' y muestra el componente 404 no encontrado, entonces creo que la ruta se inserta antes de que finalice la respuesta.

¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Sí, parece que en el ciclo de renderizado inicial basePrefix o valueFromContext?.name produce un valor indefinido. Puede aplicar alguna lógica de representación condicional para devolver un indicador null o de carga mientras se recupera/calcula el valor basePrefix .

Ejemplo:

 const Routing: React.FunctionComponent = () => { const { valueFromContext } = React.useContext(DataContext); const basePrefix = valueFromContext?.name; return basePrefix ? ( <BrowserRouter > <Header /> <div className="App"> <Switch> <Route exact path={["/", "/dashboard"]}> <Redirect to={`/${basePrefix}/home`} /> </Route> <Route exact path={[`/${basePrefix}/home`, "/"]} component={Home} /> <Route exact path={`/account/:id`} render={(props: RouteComponentProps<any>) => <Account {...props} />} /> <Route component={NotFound} /> </Switch> </div> </BrowserRouter> ) : null; // <-- or loading indicator/spinner/etc }

En su pregunta estrechamente relacionada aquí, observe que proporcioné un valor de baseprefix definido válido del contexto por este motivo, para no inyectar accidentalmente undefined en la ruta de la URL.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!