onEnter not called in React-Router

后端 未结 2 1836
刺人心
刺人心 2020-12-01 02:29

Ok, I\'m fed up trying.
The onEnter method doesn\'t work. Any idea why is that?

// Authentication \"before\" filter
function requireAuth(ne         


        
相关标签:
2条回答
  • 2020-12-01 03:22

    onEnter no longer exists on react-router-4. You should use <Route render={ ... } /> to get your desired functionality. I believe Redirect example has your specific scenario. I modified it below to match yours.

    <Route exact path="/home" render={() => (
      isLoggedIn() ? (
        <Redirect to="/front"/>
      ) : (
        <Home />
      )
    )}/>
    
    0 讨论(0)
  • 2020-12-01 03:22

    From react-router-v4 onEnter, onUpdate, and onLeave is removed, according the documentation on migrating from v2/v3 to v4:

    on* properties
    React Router v3 provides onEnter, onUpdate, and onLeave methods. These were essentially recreating React's lifecycle methods.

    With v4, you should use the lifecycle methods of the component rendered by a <Route>. Instead of onEnter, you would use componentDidMount or componentWillMount. Where you would use onUpdate, you can use componentDidUpdate or componentWillUpdate (or possibly componentWillReceiveProps). onLeave can be replaced with componentWillUnmount.

    0 讨论(0)
提交回复
热议问题