Dans mon application, j'ai un appel api qui obtient des données (tableau d'objets), je les utilise ensuite dans un contexte et je les partage dans mon application. Ce que je veux faire, c'est utiliser certaines de ces données, c'est-à-dire la valeur de l'objet, et les préfixer dans mes routes. La gestion de l'API est effectuée via react-query.
J'ai essayé d'accéder à la variable et de l'insérer comme suit :
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>
</>
)
}
Le problème est que c'est incohérent, car parfois l'url revient comme '/undefined/home' et affiche le composant 404 not found, donc je pense que la route est insérée avant que la réponse ne soit terminée ?
Une idée ?