react-admin:编辑表单未预填充现有属性
react-admin: Edit form not prefilled with existing attributes
我最近发现了 react-admin。一切似乎都很好,但我 运行 遇到了一个问题,我找不到任何解决方案:
编辑 现有 记录时,所有输入字段都是空的。提交空表单时 - 所有属性都得到 "nulled".
这是我的代码:
// 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 存储中并可用。
有趣的是:DisabledInput
的 ID 显示在表单中。
我错过了什么?
编辑:
package.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 旨在解决这个问题。
问题是您正在使用 aor-jsonapi-client
,Admin-On-Rest which is the old version of React Admin 的客户端。
为了解决您的问题,我建议为 React Admin 使用相关的数据提供程序,例如:
有关更多信息,请参阅 React Admin 上的 documentation about data providers。
替代 jsonapi 客户端
我刚刚在此处找到了另一个可用的 react-admin jsonapi 客户端:
https://github.com/henvo/ra-jsonapi-client
可以安装:
npm install ra-jsonapi-client
我最近发现了 react-admin。一切似乎都很好,但我 运行 遇到了一个问题,我找不到任何解决方案:
编辑 现有 记录时,所有输入字段都是空的。提交空表单时 - 所有属性都得到 "nulled".
这是我的代码:
// 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 存储中并可用。
有趣的是:DisabledInput
的 ID 显示在表单中。
我错过了什么?
编辑:
package.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 旨在解决这个问题。
问题是您正在使用 aor-jsonapi-client
,Admin-On-Rest which is the old version of React Admin 的客户端。
为了解决您的问题,我建议为 React Admin 使用相关的数据提供程序,例如:
有关更多信息,请参阅 React Admin 上的 documentation about data providers。
替代 jsonapi 客户端
我刚刚在此处找到了另一个可用的 react-admin jsonapi 客户端: https://github.com/henvo/ra-jsonapi-client
可以安装:
npm install ra-jsonapi-client