如何在react-redux-connect的@connect装饰器中访问动态数据?

_

因此,我将react-async-connect与react-redux-connect结合使用,如下所示:

@asyncConnect([{
  deferred: true,
  promise: ({ params, store: { dispatch, getState } }) => {
    if (!isLoaded(getState(), params.userID)) {
      console.log('it was not already loaded')
      return dispatch(loadProfile(params.userID))
    }

    console.log('it was indeed already loaded')

  },
}])
@connect(
  state => ({
    profile: {???},
    error: state.publicData.profile.error,
    loading: state.publicData.profile.loading,
  }),
  { initializeWithKey }
)
export default class Profile extends Component {
  ...etc

基本上,将asyncConnect触发一个加载相关数据的操作,然后使用@connect装饰器将此数据加载为以下Profile组件的道具问题是,我想基于userId将用户配置文件数据加载到我的商店中,因此数据的位置是“动态的”。我如何访问params@connect装饰器中的内容或其他globalState类型的内容?

我需要的是,假设用户的ID是1234,是这样的:

@connect(
  state => ({
    profile: state.publicData.users.1234,
    error: state.publicData.profile.error,
    loading: state.publicData.profile.loading,
  }),
  { initializeWithKey }
)

当然,该userId在params对象以及路由本身中。我该如何访问呢?

编辑:

因此,我应该更仔细地研究一下文档。事实证明,您可以传递第二个ownProps参数,如下所示:

@connect(
  (state, ownProps) => ({
    profile: state.publicData.users[ownProps.params.userId],
    error: state.publicData.profile.error,
    loading: state.publicData.profile.loading,
  }),
  { initializeWithKey }
)
凯莉·安德鲁斯(Kelly J Andrews)

router不被加工成状态-你应该能够做到这一点在你的reducer.js文件,像这样:

reducer.js

...
import { routerStateReducer } from 'redux-router';

export default combineReducers({
  router: routerStateReducer,
...
})

这应该将您的所有路由器信息置于状态,并使连接功能可以访问它:

component.js

@connect(
  state => ({
    profile: state.publicData.users[state.router.params.userId],
    error: state.publicData.profile.error,
    loading: state.publicData.profile.loading,
  }),
  { initializeWithKey }
)

这段代码将假设您拥有,userId并且将始终如此,否则它将无法正常工作。

另外-根据您的更新-还ownProps应该可以访问这些参数-

@connect(
  (state, ownProps) => ({
    profile: state.publicData.users[ownProps.params.userId],
    error: state.publicData.profile.error,
    loading: state.publicData.profile.loading,
  }),
  { initializeWithKey }
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 React Redux 中渲染 ListItems?

来自分类Dev

@connect装饰器在react-redux中有什么用

来自分类Dev

如何在React Actions Redux中获取状态数据?

来自分类Dev

如何让@connect 装饰器与 redux-saga 一起工作?

来自分类Dev

无论缓存如何,如何在React中更新Redux存储

来自分类Dev

如何访问包装在React-Redux的connect函数中的功能子组件中的ref?

来自分类Dev

React / Redux-如何在React组件中显示Redux存储中的值?

来自分类Dev

如何在React-redux中单击显示/隐藏组件?

来自分类Dev

如何在react-redux中更新存储状态?

来自分类Dev

如何在React Redux中渲染Date对象?

来自分类Dev

如何在React和Redux中重用组件?

来自分类Dev

如何在React Redux中添加受保护的路由

来自分类Dev

如何在react redux中存储多层对象?

来自分类Dev

Redux装饰器以React组件状态获取数据

来自分类Dev

如何在Redux传奇中访问Promise数据

来自分类Dev

React:从组件中的Redux访问数据

来自分类Dev

如何在 createContainer (react-meteor-data) 中访问 Redux 状态?

来自分类Dev

如何在自定义 api 处理程序中访问 redux 存储区 react javascript 类

来自分类Dev

如何在Redux中实施数据约束

来自分类Dev

如何使用redux在react中获取数据?

来自分类Dev

如何在React JS或React-Redux JS中对CloudKit JS进行身份验证

来自分类Dev

减速器链如何在react-redux中工作

来自分类Dev

非规范化数据如何在React Redux中引起问题?

来自分类Dev

如何在获取操作中使用存储中的数据(react-redux)

来自分类Dev

如何在我的对象(Redux、React)中获取数据(我的 api json)?

来自分类Dev

如何在 react-native/redux 中处理外部数据库更新?

来自分类Dev

React onComponentDidMount event with react-redux connect

来自分类Dev

React Redux-动态创建 Redux 表单

来自分类Dev

React 路由器——如何在没有查询参数或 Redux 的情况下发送道具?

Related 相关文章

  1. 1

    如何在 React Redux 中渲染 ListItems?

  2. 2

    @connect装饰器在react-redux中有什么用

  3. 3

    如何在React Actions Redux中获取状态数据?

  4. 4

    如何让@connect 装饰器与 redux-saga 一起工作?

  5. 5

    无论缓存如何,如何在React中更新Redux存储

  6. 6

    如何访问包装在React-Redux的connect函数中的功能子组件中的ref?

  7. 7

    React / Redux-如何在React组件中显示Redux存储中的值?

  8. 8

    如何在React-redux中单击显示/隐藏组件?

  9. 9

    如何在react-redux中更新存储状态?

  10. 10

    如何在React Redux中渲染Date对象?

  11. 11

    如何在React和Redux中重用组件?

  12. 12

    如何在React Redux中添加受保护的路由

  13. 13

    如何在react redux中存储多层对象?

  14. 14

    Redux装饰器以React组件状态获取数据

  15. 15

    如何在Redux传奇中访问Promise数据

  16. 16

    React:从组件中的Redux访问数据

  17. 17

    如何在 createContainer (react-meteor-data) 中访问 Redux 状态?

  18. 18

    如何在自定义 api 处理程序中访问 redux 存储区 react javascript 类

  19. 19

    如何在Redux中实施数据约束

  20. 20

    如何使用redux在react中获取数据?

  21. 21

    如何在React JS或React-Redux JS中对CloudKit JS进行身份验证

  22. 22

    减速器链如何在react-redux中工作

  23. 23

    非规范化数据如何在React Redux中引起问题?

  24. 24

    如何在获取操作中使用存储中的数据(react-redux)

  25. 25

    如何在我的对象(Redux、React)中获取数据(我的 api json)?

  26. 26

    如何在 react-native/redux 中处理外部数据库更新?

  27. 27

    React onComponentDidMount event with react-redux connect

  28. 28

    React Redux-动态创建 Redux 表单

  29. 29

    React 路由器——如何在没有查询参数或 Redux 的情况下发送道具?

热门标签

归档