2016-09-14 41 views
1

我有一个反应/ redux应用程序,我试图将一些道具传递给我的组件。现在在我的app.jsx我只是有一个非常简单的渲染,像这样:通过反应路由器在app.jsx级别创建传递道具

ReactDOM.render(
    <Provider store={store}> 
    <Router 
     history={browserHistory} 
     > 
     {routes} 
    </Router> 
    </Provider>, 
    rootElement 
); 

的{}航线只是看起来像

export default(
    <Route component={App} path="/"> 
    <Route component={MyComponent} path="/" /> 
    </Route> 
); 

我只是想一些道具传递给应用程序零件。我想的第一件事是,像这样:

ReactDOM.render(
    <Provider store={store}> 
    <Router 
     history={browserHistory} 
     passedProp={passedProp} 
     > 
     {routes} 
    </Router> 
    </Provider>, 
    rootElement 
); 

所以我试图得到有效的是this.props.passedProp应用组件的内部。我尝试了Google和其他一些事情,似乎无法提出正确的解决方案。有没有这样做的正确方法?谢谢!

+0

并不像'this.props.router.props.passedProp'或'内this.props.router.passedProp'工作应用程序与您当前的设置? – EugZol

+0

你想从哪里通过道具?另外,请注意,为什么两个组件都使用路径'/'? –

回答

0

你会做你的AppComponent.jsxmapStateToProps功能(在你的路由假设你使用import App from './AppComponent.jsx'。我们可以提供更多的帮助,如果你说的哪里passedprop的来源和如何使用它的更多细节。

这里的反应路由器文档上,你可以在<Route>做什么:https://github.com/ReactTraining/react-router/blob/master/docs/API.md#route

0

反应路由器4

可以使用Match组件和直接传递道具组件道具。

下面的代码示例将自定义道具labeltitle传递给Game组件。

const route = { 
    pattern: '/game', 
    label: 'Star Wars Trivia', 
    title: `${siteTitle} - Star Wars Trivia`, 
    component: Game 
    }; 
<Match { ...route } key={ i } render={(props) => <route.component {...props} routes={route.routes}/>} /> 

的工作示例应用程序,结账react-legoroutes.js on the react-router-4 branch

相关问题