J'ai un chemin de départ '/' et chaque fois qu'un utilisateur va sur cette route, je veux l'envoyer sur sa page s'il est authentifié ou l'envoyer sur la route '/ login' s'il n'est pas authentifié. Afin d'envoyer un utilisateur à sa page je fais une demande au serveur, récupère son identification et le redirige vers l'itinéraire basé sur l'identification que je reçois du serveur. Cependant, je suis un peu confus quant à la façon d'implémenter cette logique dans mon composant Home correctement. Quel serait le meilleur moyen de rendre le composant de redirection basé sur le résultat de la requête ajax?Composant de redirection de rendu basé sur une requête ajax
class Home extends React.Component {
async componentDidMount() {
const response = await Api.getUserId();
const id = response.data._id;
}
render() {
if(this.props.userStatus.authenticated) {
return <Redirect to={{
pathname: `/${id}`,
state: { from: this.props.location }
}}/>
}
return <Redirect to={{
pathname: '/login',
state: { from: this.props.location }
}}/>
}
}
export default connectComponent(['userStatus'], Home);
Merci, mais ce n'est pas ce que j'ai un problème avec. L'idée du composant Home est qu'il redirige les utilisateurs authentifiés vers leurs pages respectives par les identifiants que je récupère sur le serveur. Ce que je veux arriver: un utilisateur va à '/' => s'il est authentifié, je récupère son identifiant auprès du serveur (en fournissant un jeton), puis le redirige vers sa page personnelle. Ce que je suis confus sur est de savoir comment implémenter le "récupérer l'identifiant de l'utilisateur, puis rediriger en fonction de l'ID que vous avez récupéré" logique asynchrone. La route vers laquelle je veux rediriger un utilisateur est basée sur le résultat que je reçois du serveur. – Umbrella