首页 > 解决方案 > react-admin:编辑表单未预先填充现有属性

问题描述

我最近发现了react-admin。一切似乎都很好,但我遇到了一个我找不到任何解决方案的问题:

编辑现有记录时,所有输入字段均为空。提交空表单时 - 所有属性都“无效”。

这是我的代码:

// src/users.js
export const UserEdit = (props) => (
  <Edit title="Edit User" {...props}>
    <SimpleForm>
      <DisabledInput label="Id" source="id" />
      <TextInput source="first_name" />
      <TextInput source="last_name" />
    </SimpleForm>
  </Edit>
);

// App.js
const restClient = jsonAPIRestClient("http://localhost:3000/admin");

const App = () => (
  <Admin dataProvider={restClient}>
    <Resource name="users" list={UserList} edit={UserEdit}/>
  </Admin>
);

对于我使用的数据适配器jsonAPIRestClient。记录都存储在 redux 存储中并可用。

有什么有趣的:作为 a 的 IdDisabledInput出现在表格中。

我错过了什么?

编辑:

包.json

{
  "name": "admin",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "aor-jsonapi-client": "^0.2.0",
    "prop-types": "^15.6.2",
    "react": "^16.5.0",
    "react-admin": "^2.3.0",
    "react-dom": "^16.5.0",
    "react-scripts": "1.1.5"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

编辑 2: 我刚刚发现,用户属性位于 ca 的编辑页面的输入字段中。1/10 秒。然后田地就清零了?!

编辑 3: 这是导致此错误的 redux 操作:

RA/CRUD_GET_ONE_SUCCESS 在此处输入图像描述

所以我猜这里出了什么问题是数据提供者将获取的单个资源错误地存储在 redux 存储中。它是否正确?

编辑 4: 不幸的是,数据提供者似乎很糟糕。该存储库目前似乎未维护。有一个 PR 旨在解决这个问题。

https://github.com/moonlight-labs/aor-jsonapi-client/pull/6

标签: javascriptreactjsreact-admin

解决方案


问题是您正在使用Admin-On-Restaor-jsonapi-client的客户端,它是React Admin的旧版本。

为了解决您的问题,我建议使用 React Admin 的相关数据提供程序,例如:

有关更多信息,请参阅React Admin 上有关数据提供者的文档。


推荐阅读