2017-03-15 18 views
0

リアクタに小さな問題があります。私は以下のルート設定を持っています:ネストされたルートと一致しないリアクションルータ

ReactDOM.render(
    <Provider store={store}> 
     <Router history={browserHistory}> 
      <Route path="/" component={ProjectManagerApp}> 
       <IndexRoute component={MainDashboard} /> 
       <Route path='/projects/:id' component={ProjectView}> 
        <IndexRoute component={ProjectPanel} /> 
        <Route path='/todos' component={ProjectTodos} />      
       </Route>     
       <Route path='*' component={NotFound} />    
      </Route> 
     </Router> 
    </Provider> 
    , 
    document.getElementById('app') 
); 

"ProjectView"内にネストされたルートが問題です。 IndexRouteが動作しているので、たとえば、 "http://localhost:3000/projects/38d38234-5bdb-474a-8db8-6206cefe3e87"にアクセスすると、Project Panelコンポーネントがレンダリングされます。しかし、 "http://localhost:3000/projects/38d38234-5bdb-474a-8db8-6206cefe3e87/todos"にアクセスすると、NotFoundルートになります。他のすべてのルートが正しく動作しています。私はReact Router 3を使っています。だれでも助けてくれますか?あなたはtrailing /で指定したすべてのルートがルートからの相対となり

<Route path='/todos' component={ProjectTodos} /> 

なります

おかげ

答えて

2

は、アクセスするには、ネストされたルート

あるhttp://localhost:8080/todosイベントタフでアクセスすることができますあなたは後ろに/を取り除きたいと思います。あなたのルートを指定する

ReactDOM.render(
    <Provider store={store}> 
     <Router history={browserHistory}> 
      <Route path="/" component={ProjectManagerApp}> 
       <IndexRoute component={MainDashboard} /> 
       <Route path='projects/:id/' component={ProjectView}> 
        <IndexRoute component={ProjectPanel} /> 
        <Route path='todos' component={ProjectTodos} />      
       </Route>     
       <Route path='*' component={NotFound} />    
      </Route> 
     </Router> 
    </Provider> 
    , 
    document.getElementById('app') 
); 
+0

これはまだ動作しません。以前の設定ではルートから "todos"にアクセスできたことは間違いありませんでしたが、新しいものでは、あなたが提案したように、 "projects/id/todos"にはまだアクセスできません。まだNotFoundルートを返しています。 – fgalvao

+0

'projects /:id /'を試してください –

+0

ちょっとしたショーハム、あなたは実際には正解でした。私の最後の問題は、私が使っていたリンクでした。ご協力いただきありがとうございます – fgalvao

関連する問題