2016-09-18 3 views
0

나는 유성을 React Router, meteor-webpackmeteor-useraccounts과 함께 사용하고 있습니다.meteor.startup.js의 리액터 라우터 (유성 최상위 레벨)

가 나는가 성공적으로 로그인 한 후 내 사용자를 리디렉션 할 user accounts doc에서

:.

var mySubmitFunc = function(error, state){ 
    if (!error) { 
    if (state === "signIn") { 
    // Successfully logged in 
    // ... 
    } 
    if (state === "signUp") { 
    // Successfully registered 
    // ... 
    } 
    } 
}; 

AccountsTemplates.configure({ 
    onSubmitHook: mySubmitFunc 
}); 

AccountsTemplates 때문에 구성 should be called in top-level code을,이 코드는 meteor.startup.jswhen you are using meteor-webpack에 있어야한다.

"Successfully logged in"상태에서 browserHistory.push('/some/path')을 호출하고 싶습니다. 이 레벨의 리액시 라우터에 액세스 할 수 없습니다..

내 가능성은 무엇입니까?

답변

1

시작 클라이언트 폴더 안에는 routes.js 파일이 있습니다.

import React from 'react'; 
import { Meteor } from 'meteor/meteor'; 
import { render } from 'react-dom'; 
import { Router, Route, browserHistory, IndexRoute } from 'react-router'; 

import { App } from '../../ui/App'; 
import { NavLayout } from '../../ui/layouts/NavLayout'; 
import { Index } from '../../ui/pages/Index'; 
import { TasksList } from '../../ui/pages/TasksList'; 
import { ReportsList } from '../../ui/pages/ReportsList'; 
import { TechniciansList } from '../../ui/pages/TechniciansList'; 
import { ChangePassword } from '../../ui/pages/ChangePassword'; 

const requireAuth = (nextState, replace) => { 
    if (!Meteor.loggingIn() && !Meteor.userId()) { 
    replace({ 
     pathname: '/logout', 
     state: { nextPathname: nextState.location.pathname }, 
    }); 
    } 
}; 

Meteor.startup(() => { 
    render(
    <Router history={ browserHistory }> 
     <Route path="/" component={ App }> 
     <Route component={ NavLayout }> 
      <IndexRoute component={ Index } onEnter={ requireAuth } /> 
      <Route path="/techniciens" component={ TechniciansList } onEnter={ requireAuth } /> 
      <Route path="/techniciens/:id/edit" component={ EditTechnician } onEnter={ requireAuth } /> 
      <Route path="/clients" component={ ClientsList } onEnter={ requireAuth } /> 
      <Route path="/clients/:id" component={ ClientDetails } onEnter={ requireAuth } /> 
      <Route path="/appareils" component={ MachinesList } onEnter={ requireAuth } /> 
      <Route path="/appareils/:id" component={ MachineDetails } onEnter={ requireAuth } /> 

      <Route path="/change-password" component={ ChangePassword } onEnter={ requireAuth } /> 
     </Route> 

     <Route path="/logout" component={ Connexion } /> 
     </Route> 
    </Router>, 
    document.getElementById('react-root') 
); 
}); 
관련 문제