2016-08-07 2 views
1

온라인으로 답변을 찾지 못했습니다. 기본적으로 응용 프로그램이 루트 루트 (/)에서 'posts'(으)로 자동으로 리디렉션되기를 원합니다. 그래서 www.app.com/user/1www.app.com/user/1/posts반응 라우터를 사용하여 중첩 경로의 루트에서 어떻게 리디렉션합니까?

으로 리디렉션을 시도했지만 실제로 아무 것도 수행하지 않습니다.

<Router history={browserHistory}> 
    <Route path="/" component={App}> 
     <IndexRoute component={HomePage}></IndexRoute> 
     <Route path="user/:id" component={UserPage}> 
      <Route path="tracks" component={UserPosts}></Route> 
      <Redirect from="/" to="posts"/> 
     </Route> 
    </Route> 
</Router> 

위의 Redirect 구성 요소를 사용해 보았지만 여전히 작동하지 않습니다. 어떤 아이디어?

답변

4

우리가 우리의 프로젝트에 사용하고있는 솔루션은 IndexRoute을 기반으로합니다

const redirectToMainPage = (nextState, replace, callback) => {  
    replace(null, '/firstPage'); 

    if (callback) { 
     callback(); 
    } 
}; 

이 동적으로 리디렉션을 선택 가능하게 할 것이다 :

<IndexRoute onEnter={redirectToMainPage} /> 

redirectToMainPage 정의된다.

또한, IndexRedirect를 사용할 수 있습니다

<IndexRedirect to="/firstPage" /> 

난 당신이 from에서 /로 시작하는 경우 <Redirect>는 절대 경로를 사용 있다고 생각하고 일반적으로는 빈 경로 덜 신뢰할 수있다.

+0

고마워요! 'IndexRedirect'가 트릭을했습니다! –

관련 문제