javascript - React Router Cannot Get / depending on onEnter function -


i new react , hoping can shed light on why happening , how debug it.

i have following routes defined:

export default (withhistory, onupdate) => {   const history = withhistory?               (modernizr.history ?                 new browserhistory               : new hashhistory)             : null;   return (     <router history={history}>       <route path='/login' component={login} />       <route path='/' component={home} onenter={requireauth} />     </router>   ); }; 

requireauth supposed check if user logged in , redirect them login page if not:

function requireauth(nextstate, transition) {   transition.to("/login"); } 

if leave transtion.to call in , browse root url see message says, "cannot /" no error messages in debugger. putting breakpoint on line doesn't seem anything.

what's odd if replace transition.to(...) debugger; statement, method called , routing works fine.

i must have misunderstanding on something, ideas on is?

edit: should add navigating host:port/login works fine, know login route works.

coming angular background had incorrectly assumed routing happening entirely client-side. it's possible use react-router both client-side and server side routing.

the transition.to call worked fine on client-side, threw exception when server-side routing kicked in , returned cannot / page. exception being caught nothing logged.

i added if statement see if running on client:

if(window.location) {     if(!loggedin) {         transition.to("/login");     }  } 

there better way handle , if figure out i'll update answer.


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -