2016-10-11 29 views
2

私はreduxとstatelessコンポーネントを使って私のアプリでルータを設定しようとしています。すべてのreduxとreact-routerを使って、ルータに小道具を渡す

const TodoApp = (props) => { 
    return (
     <div> 
      {props.children} 
      <Footer /> 
     </div> 
    ) 
}; 

export default (
    <Route component={TodoApp}> 
     <Route path='/' component={TodoList} /> 
    </Route> 
); 

まず、props.childrenが動作していない。ここで

は、私は私のroutes.jsxファイルを持っています。私はそこに何が間違っているのか分からない。もちろん

、私AppRoot.jsxを有する:

{ルート}上記の経路である
export default (
    <Provider store={store}> 
     <Router history={history}> 
      {routes} 
     </Router> 
    </Provider> 
) 

。 私がここで実際にやっていることは、フッター(そしてnavbarなど)が常に存在するような種類のテンプレートを作成してから、props.childrenをルート上のもの(この例ではTodoList)に変更することです。

+0

エラーはあなたが投稿したコードであることを見ていません。あなたが観察した行動を説明できますか? 'props.children'は動作していないということをあなたはどういう意味ですか? ''コンポーネントがレンダリングされていることと、両方の ''コンポーネントがネストされていますか?いくつかの簡単な 'console.log'呼び出しを呼び出して、何が呼び出されているのか、何が呼び出されていないのかを確認してください。 – slezica

答えて

1

AppRoot.jsxに代わりインスタンス成分機能をエクスポートするroutes.jsx

export default() => (
    <Route component={TodoApp}> 
     <Route path='/' component={TodoList} /> 
    </Route> 
); 

を試してください。

完全な例については
export default() => (
    <Provider store={store}> 
     <Router history={history}> 
      {routes} 
     </Router> 
    </Provider> 
); 

はここを見て:https://github.com/reactjs/react-router-redux

+0

は動作しません。私は "Uncaught Invariant Violation:ReactDOM.render():無効なコンポーネント要素です。コンポーネントクラスを渡す代わりに、React.createElementに渡してインスタンス化してください。" – JVilla

+0

DOMにRootをレンダリングするコードを教えてください。 ReactDOM.render(<ルートストア= {ストア}履歴= {履歴} />、document.getElementById( 'ルート')) – savbace

関連する問題