Ok, j’en ai marre d’essayer.
La méthode onEnter
ne fonctionne pas. Toute idée pourquoi est-ce?
// Authentication "before" filter function requireAuth(nextState, replace){ console.log("called"); // => Is not sortingggered at all if (!isLoggedIn()) { replace({ pathname: '/front' }) } } // Render the app render( , document.getElementById("lf-app")
Modifier:
La méthode est exécutée quand j’appelle onEnter={requireAuth()}
, mais évidemment ce n’est pas le but, et je n’obtiendrai pas non plus les parameters souhaités.
onEnter
n’existe plus sur onEnter
react-router-4
. Vous devez utiliser
pour obtenir la fonctionnalité souhaitée. Je crois que l’exemple de Redirect
a votre scénario spécifique. Je l’ai modifié ci-dessous pour correspondre au vôtre.
( isLoggedIn() ? ( ) : ( ) )}/>
De onEnter
-router-v4 onEnter
, onUpdate
et onLeave
sont supprimés, conformément à la documentation sur la migration de v2 / v3 vers v4 :
on*
propriétés
React Router v3 fournit desonEnter
,onUpdate
etonLeave
. Celles-ci recréaient essentiellement les méthodes du cycle de vie de React.Avec v4, vous devez utiliser les méthodes de cycle de vie du composant rendu par un
. Au lieu de
onEnter
, vous utiliseriezcomponentDidMount
oucomponentWillMount
. Si vous utilisezonUpdate
, vous pouvez utilisercomponentDidUpdate
oucomponentWillUpdate
(ou éventuellementcomponentWillReceiveProps
).onLeave
peut être remplacé parcomponentWillUnmount
.