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

时间:2018-04-20 08:08:01

标签: javascript reactjs redux react-router

redux docs上举例说明如何将其与react-router一起使用:

const App = ({ match: { params } }) => {
  return (
    <div>
      <AddTodo />
      <VisibleTodoList filter={params.filter || 'SHOW_ALL'} />
      <Footer />
    </div>
  )
}

假设reduxreact-router都已正确设置,您如何将路由器参数传递给深度嵌套的组件,比如说VisibleTodoList下的3个级别?除了从App开始的每一个组件上传递它之外还有其他方法吗? VisibleTodoList - &gt; NestedOne - &gt; ...

1 个答案:

答案 0 :(得分:2)

使用来自react-router的withRouter()。它将注入路由器参数。 VisibleTodoList.jsx的示例:

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

此处的文档https://reacttraining.com/react-router/web/api/withRouter

相关问题