Javascript 如何使用React Router v4将Redux道具传递到不同路径中的单独组件?

Javascript 如何使用React Router v4将Redux道具传递到不同路径中的单独组件?,javascript,reactjs,react-router,react-redux,Javascript,Reactjs,React Router,React Redux,我正在用react、react router v4和redux创建一个实时聊天应用程序。问题是,您可能知道,react router v4改变了很多东西,嵌套路由对我不起作用 因此,我有一个嵌套路由的代码,不起作用: <Route path='/' component={App}> <Route path="/user" component={AddUser}/> </Route> 因此,我的组件App拥有我需要的所有道具。除了我需要将这些道具从Ap

我正在用react、react router v4和redux创建一个实时聊天应用程序。问题是,您可能知道,react router v4改变了很多东西,嵌套路由对我不起作用

因此,我有一个嵌套路由的代码,不起作用:

<Route path='/' component={App}>
    <Route path="/user" component={AddUser}/>
</Route>
因此,我的组件
App
拥有我需要的所有
道具。除了我需要将这些道具从
App
传递到嵌套路由组件
AddUser
之外,所有这些都可以正常工作


如何将redux
道具
传递到不同
路径中的单独组件?

我在阅读这篇博文时找到了一个解决方案:

使用react router v4,您不再执行此操作,不再嵌套:

<Route component={App}>
    <Route component={Index} />
    <Route component={About} />
</Route>

你现在就这样做。应用程序按原样嵌入您的路线:

<App>
    <Switch>
        <Route exact path="/" component={Index} />
        <Route path="/about" component={About} />
    </Switch>
</App>

使用react router v4,当我们需要嵌套路由时,我们不嵌套路由。相反,我们将它们放在嵌套组件中。您可以在此处了解更多信息:

在您的情况下,您可以将“/user”路由放在应用程序组件中,然后使用
render
而不是
component
。因此,您可以像往常一样将应用程序道具传递给AddUser

<Route path='/' component={App}/>

App.js

class App extends Component{
  //...
  render(){
    return(
      //....
      <Route path="/user"
        render={() => <AddUser myProp={this.props.myAppProp}/>}/>
      //....
    )
  }
}
类应用程序扩展组件{
//...
render(){
返回(
//....
}/>
//....
)
}
}

检查此问题的可能重复:该问题没有解决我的问题,因为它对我来说不够清楚。我在下面回答了我自己的问题。
class App extends Component{
  //...
  render(){
    return(
      //....
      <Route path="/user"
        render={() => <AddUser myProp={this.props.myAppProp}/>}/>
      //....
    )
  }
}