Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将路由器参数传递给深嵌套组件_Javascript_Reactjs_Redux_React Router - Fatal编程技术网

Javascript 将路由器参数传递给深嵌套组件

Javascript 将路由器参数传递给深嵌套组件,javascript,reactjs,redux,react-router,Javascript,Reactjs,Redux,React Router,以redux中关于如何将其与react路由器一起使用的示例为例: const App = ({ match: { params } }) => { return ( <div> <AddTodo /> <VisibleTodoList filter={params.filter || 'SHOW_ALL'} /> <Footer /> </div> ) } const-

redux
中关于如何将其与
react路由器一起使用的示例为例:

const App = ({ match: { params } }) => {
  return (
    <div>
      <AddTodo />
      <VisibleTodoList filter={params.filter || 'SHOW_ALL'} />
      <Footer />
    </div>
  )
}
const-App=({match:{params}})=>{
返回(
)
}
假设
redux
react router
都已正确设置,您将如何将路由器参数传递给深度嵌套的组件,例如向下三级
VisibleTodoList
?除了将其传递到每个组件上之外,还有其他方法吗?从react router的
应用程序
->
可见到列表
->
->
..

使用With router()。它将注入路由器参数。VisibleTodoList.jsx的示例:

import { withRouter } from `react-router`;
const VisibleTotoList = ({ match: { params } }) => { ... }
export default withRouter(VisibleTotoList);
此处的文档使用react router中的withRouter()。它将注入路由器参数。VisibleTodoList.jsx的示例:

import { withRouter } from `react-router`;
const VisibleTotoList = ({ match: { params } }) => { ... }
export default withRouter(VisibleTotoList);

这里的文档

因为我使用的是
react router redux
,我的第一个猜测是听
LOCATION\u CHANGE
操作,然后将
过滤器
添加到状态。通过这种方式,我可以在嵌套组件中使用容器,从状态中获取过滤器并将其传递给表示组件。有更好的解决方案吗?因为我使用的是
react router redux
,我的第一个猜测是听
LOCATION\u CHANGE
操作,然后将
过滤器添加到状态。通过这种方式,我可以在嵌套组件中使用容器,从状态中获取过滤器并将其传递给表示组件。有更好的解决办法吗?