如何在不使用Resource组件的情况下将表单数据保存在AOR中?
How to save form data in AOR without using Resource component?
我目前正在处理一个项目并使用 admin-on-rest。 Resource
组件到目前为止非常有用,构建视图以列出、查看、创建和编辑项目非常容易。但是出现了一些情况,不需要 Resource
组件并将 API 端点映射到 AOR 中的某些 url。
在这个项目中有一个设置页面,例如更改网站语言。现在我还想在那里添加一个用于编辑客户数据的表格。 AOR 文档有示例,其中 SimpleForm
组件位于 Edit
组件内,但我不能那样做,因为使用它会引发错误。我还不知道这些错误的确切原因,但我想这与此有关,我没有使用 Resource
组件来映射 [=] 的正确 API 端点14=] 要使用的组件。
首先,我遇到了一个问题,即如何在不使用 Resource
组件的情况下将客户数据获取到 SimpleForm
组件。我通过添加对 componentDidMount
方法的 rest 调用并将响应设置为状态来解决该问题。使用状态,SimpleForm 组件可以显示正确的客户数据。 SimpleForm 默认提供一个保存按钮,但我还发现我可以使用工具栏道具覆盖它。
到目前为止我的代码:
componentDidMount() {
restClient("GET_ONE", 'customers', {pagination: { page: 1, perPage: 5 }, sort: { field: 'name', order: 'ASC' }, id: 5})
.then(response => {
this.setState({customerData: response.data});
}
});
}
render() {
const FormToolbar = props => <Toolbar>
<SaveButton label="Save" />
</Toolbar>;
return (
<Card>
<ViewTitle title="Edit customer" />
<SimpleForm record={this.state.customerData} toolbar={<FormToolbar />} >
<TextInput source="name" />
<TextInput source="email" />
<TextInput source="street" />
<TextInput source="postal_code" />
<TextInput source="city" />
</SimpleForm>
</Card>
);
}
但是我应该如何实现保存客户详细信息呢?保存按钮目前什么都不做,可能是因为它不知道该做什么。我是否应该创建一些自定义函数并调用客户端点的 rest put?如何将该功能绑定到该保存按钮?
不要将 react-admin 组件用于资源之外的任何其他用途。这不是 UI 工具包。在你的情况下,你应该使用普通的旧 material-ui 并自己实现表单(验证、提交和提取等)
我目前正在处理一个项目并使用 admin-on-rest。 Resource
组件到目前为止非常有用,构建视图以列出、查看、创建和编辑项目非常容易。但是出现了一些情况,不需要 Resource
组件并将 API 端点映射到 AOR 中的某些 url。
在这个项目中有一个设置页面,例如更改网站语言。现在我还想在那里添加一个用于编辑客户数据的表格。 AOR 文档有示例,其中 SimpleForm
组件位于 Edit
组件内,但我不能那样做,因为使用它会引发错误。我还不知道这些错误的确切原因,但我想这与此有关,我没有使用 Resource
组件来映射 [=] 的正确 API 端点14=] 要使用的组件。
首先,我遇到了一个问题,即如何在不使用 Resource
组件的情况下将客户数据获取到 SimpleForm
组件。我通过添加对 componentDidMount
方法的 rest 调用并将响应设置为状态来解决该问题。使用状态,SimpleForm 组件可以显示正确的客户数据。 SimpleForm 默认提供一个保存按钮,但我还发现我可以使用工具栏道具覆盖它。
到目前为止我的代码:
componentDidMount() {
restClient("GET_ONE", 'customers', {pagination: { page: 1, perPage: 5 }, sort: { field: 'name', order: 'ASC' }, id: 5})
.then(response => {
this.setState({customerData: response.data});
}
});
}
render() {
const FormToolbar = props => <Toolbar>
<SaveButton label="Save" />
</Toolbar>;
return (
<Card>
<ViewTitle title="Edit customer" />
<SimpleForm record={this.state.customerData} toolbar={<FormToolbar />} >
<TextInput source="name" />
<TextInput source="email" />
<TextInput source="street" />
<TextInput source="postal_code" />
<TextInput source="city" />
</SimpleForm>
</Card>
);
}
但是我应该如何实现保存客户详细信息呢?保存按钮目前什么都不做,可能是因为它不知道该做什么。我是否应该创建一些自定义函数并调用客户端点的 rest put?如何将该功能绑定到该保存按钮?
不要将 react-admin 组件用于资源之外的任何其他用途。这不是 UI 工具包。在你的情况下,你应该使用普通的旧 material-ui 并自己实现表单(验证、提交和提取等)