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

标签 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如果设置正确,您将如何将路由器参数传递给深层嵌套的组件,例如向下 3 层 VisibleTodoList ?除了将其传递到从 App 开始的每个组件上之外,还有其他方法吗? -> VisibleTodoList -> NestedOne -> ...

最佳答案

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

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

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

关于javascript - 将路由器参数传递给深层嵌套组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49937000/

相关文章:

redux - 开 Jest 测试: "state.get is not a function"

javascript - 使用带有ajax和jquery的api调用初始化物化自动完成数据集

javascript - 为什么在html中添加类名后我的图像不显示?

javascript - 循环气泡动画

reactjs - 使用异步 redux-thunk 操作进行存储更改 typescript 的功能测试

javascript - 为什么我要使用 Redux Promise 中间件而不是 Redux Promise?

javascript - 将 LocalSearch 工具添加到 Leaflet JS 库

javascript - jQuery:从无序列表中获取点击 anchor

reactjs - 如何在将React模块转换为ES6类时解决 `this`

javascript - Firestore onSnapshot 通过 onEffect 中的状态附加到数组