2016-10-11 73 views
2

我想在我的應用中使用REDX和無狀態組件設置路由器。傳遞道具到路由器,使用REDX和反應路由器

這裏我有我的routes.jsx文件:

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

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

首先,props.children不工作。我不知道那裏有什麼問題。

當然,我有我的AppRoot.jsx

export default (
    <Provider store={store}> 
     <Router history={history}> 
      {routes} 
     </Router> 
    </Provider> 
) 

其中 {}航線是上面的路由。 我實際上想要做的是在頁腳(和導航欄,或任何其他地方)有一種模板,然後我改變props.children與任何路線上(TodoList在這個例子中)。

+0

誤差不看是你發佈的代碼。你能描述你觀察到的行爲嗎?你是什​​麼意思'props.children'不工作?你確定''組件正在被渲染,以及嵌套的''組件?放一些快速的'console.log'調用,看看有什麼叫,什麼不是 – slezica

回答

1

嘗試導出組件的功能代替例如routes.jsx

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

AppRoot.jsx

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

可否請您提供一個代碼,將您的Root渲染到DOM中? 嘗試修改它以像這樣排序:ReactDOM.render(,document.getElementById('root')) – savbace