【发布时间】:2022-01-02 23:18:03
【问题描述】:
我在 App.tsx 中有一个 <Ressource> 声明如下:
<Resource name="myresource" list={ListGuesser} edit={GenericEdit}/>
GenericEdit的代码:
const GenericEdit = function (props) {
console.log('props', props);
console.log('useResourceContext()', useResourceContext());
console.log('useRecordContext()', useRecordContext());
return (
<>
<Edit {...props}>
<SimpleForm>
<TextInput disabled label="Id" source="id" />
<TextInput label="Name" source="name" />
</SimpleForm>
</Edit>
</>)
};
export default GenericEdit;
<Edit><SimpleForm> 默认设置效果很好(即记录数据在表单内呈现),但是我希望能够以我自己的方式使用record 数据:
-
props仅包含元数据(URL 路径、资源类型等...)+ 记录 id,但没有其他记录数据 -
useResourceContext()返回资源类型(在我的例子中是“campaign”) useRecordContext()不返回任何内容
问:如何在我的编辑功能 (GenericEdit) 中访问记录数据,而不必依赖默认的 <SimpleForm> 功能?
【问题讨论】:
-
你看过不同的 dataprovider 钩子了吗?在这种情况下,useGetOne 可能有助于查找一条记录的详细信息:marmelab.com/react-admin/… 和更多信息:marmelab.com/react-admin/Actions.html
-
问题是
dataProvider默认情况下已经发出 1 个请求,因为我们要去edit列表,所以这会对我们应该已经拥有的数据发出另一个不必要的请求
标签: react-admin