React Router 4 introduit des changements qui empêchent la mise en œuvre simple de routes authentifiées en utilisant l'approche traditionnelle. Pour résoudre ce problème, explorons une solution alternative.
Erreur rencontrée :
Dans votre implémentation initiale, vous avez tenté d'utiliser le
Approche proposée :
Pour surmonter cette erreur, nous pouvons utiliser l'option
Composant PrivateRoute :
function PrivateRoute ({component: Component, authed, ...rest}) { return ( <Route {...rest} render={(props) => authed === true ? <Component {...props} /> : <Redirect to={{pathname: '/login', state: {from: props.location}}} />} /> ) }
Itinéraires mis à jour :
<Route path='/' exact component={Home} /> <Route path='/login' component={Login} /> <Route path='/register' component={Register} /> <PrivateRoute authed={this.state.authed} path='/dashboard' component={Dashboard} />
Répartition des actions dans la méthode render() :
Votre préoccupation concernant la répartition des actions dans le rendu( ) la méthode est valide. Cette méthode est généralement déconseillée car elle peut entraîner des effets secondaires potentiels et des problèmes de performances. Au lieu de cela, vous devez répartir les actions dans les méthodes de cycle de vie telles que composantDidMount ou utiliser les outils de gestion d'état de React comme Redux ou l'API Context.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!