【问题标题】:Adding react-admin to existing project - resourceState is undefined将 react-admin 添加到现有项目 - resourceState 未定义
【发布时间】:2018-07-17 19:15:11
【问题描述】:

我遵循https://marmelab.com/react-admin/CustomApp.html 上的指南,以便将 react-admin 合并到现有的 react-redux 项目中。

我已将 admin、i18n 和路由器状态对象注入到通用列表组件中。但是,在渲染组件时,出现以下错误:

TypeError: resourceState is undefined
mapStateToProps
node_modules/ra-core/lib/controller/ListController.js:413
410 | 
411 | return {
412 |     query: getQuery(props),
> 413 |     params: resourceState.list.params,
414 |     ids: resourceState.list.ids,
415 |     selectedIds: resourceState.list.selectedIds,
416 |     total: resourceState.list.total,

重要的一点是,当我console.log 我的组件的道具时,我可以看到管理对象确实存在但它不包含“资源”对象。如何手动将资源加载到商店的管理员中?

组件的智能容器:

class MyContainer extends Component {
  render() {
    return(
      <Switch>
        <Route exact path='/admin/stuff/list' hasCreate render=
          {() => <MyList resource='myStuff' {...this.props}/>}/>
      </Switch>
    )
  }
}

const mapStateToProps = (state) =>{
  return {
    admin: state.admin,
    i18n: state.i18n,
    form: state.form
  }
}

最后是 MyList 组件:

import React, { Component } from 'react'
import { List, Datagrid } from 'react-admin'

class MyList extends Component {
  constructor(props) {
    super(props)
  }

  render() {
    return(
      <List {...this.props}>
        <Datagrid>
        </Datagrid>
      </List>
    )
  }
}

export default MyList

【问题讨论】:

  • 是的,这里有同样的问题 - 完全按照指南进行操作并得到错误。可能是由于文档已过时。我花了几个月的时间才意识到 react-admin 有多么糟糕,所以我决定将应用程序移植到更好的方法上。不幸的是,这并不容易。我还在 GitHub 上看到了您的“问题”,lib 作者将您重定向到 SO。优秀的方法 React-Admin 团队!不向任何人推荐这个库。

标签: reactjs redux react-redux react-admin


【解决方案1】:

您需要手动“注册资源”。

因此,在您创建商店后,请执行以下操作:

import * as reactAdmin from "ra-core";
...
...
const store = createStore....


store.dispatch(reactAdmin.registerResource({
  name: "myStuff",
  hasList: true,
  hasEdit: false,
  hasShow: false,
  hasCreate: false
}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 2023-03-15
    • 2020-11-27
    • 2020-02-11
    • 2019-11-26
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多