javascript - 使用 react-router-redux 访问参数

标签 javascript reactjs redux react-router-redux

我正在使用 react-router-redux ( https://github.com/ReactTraining/react-router/tree/master/packages/react-router-redux )

安装

npm install --save react-router-redux@next

这样实现:

<Route path='/resource/:id' component={Resource}/>

我正在尝试访问容器中 id 的参数,如下所示:

const mapStateToProps = (state, ownProps) => {
  console.log(ownProps)
  return {...state.resource, id: ownProps.params.id}
}

如 react-router-redux 文档所示。

我收到一条错误消息,指出 ownProps.params 未定义。所以这有效:

const mapStateToProps = (state, ownProps) => {
  return {...state.resource, id: ownProps.match.params.id}
}

但是,当我记录 ownProps 时,我发现 ownProps.match.params.id 包含我需要的 ID。

这是实现上的变化还是我实现的路线有误?谢谢

最佳答案

我知道这个问题已经结束了,但我认为这对其他人会有帮助

我使用的是相同的版本,这是我在无法访问 match 时获取参数的解决方案:

import { createMatchSelector } from 'react-router-redux';

const { params } = createMatchSelector({ path: '/resource/:id' })(state);

console.log(params.id); 

我在 redux-saga 中使用它,而不是在组件中。 对于您的情况,最好使用 react-router Prop 并从 props.match.params.id

获取参数

关于javascript - 使用 react-router-redux 访问参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577836/

相关文章:

javascript - 使用 fetch api 测试 Redux 登录操作

javascript - 如何使用 javascript 以 YY-MM-DD 格式返回月份和年份?

node.js - 如何使用 Passport 验证 React 应用程序?

javascript - 表格不断调整大小而不溢出

reactjs - 使用 babel 编译 .jsx 文件而不是 .js

forms - Angular 2 + ngrx(redux) + 表单

javascript - 在 JavaScript 中解析 JSON 字符串

php - 不使用 PHP 提交联系表

javascript - 获取我的帐户上传的带有特定标签的所有视频 Vimeo API

javascript - 仅当状态发生变化时才触发操作?