在反应管理员中使用动态字段创建元素/资源
Create element / resource with dynamic fields in react admin
我们将兴趣点 (POI) 存储在我们的数据库中,并在几个 类 之间做出决定,例如:
- 湖泊
- 机场
- 端口
- ...
所有这些 类 都应该被视为单一资源,因为它们 90% 的属性是相同的(经度、纬度、名称...)。我们面临的挑战是湖泊和港口的深度应为 属性,但机场不应该。
创建视图中显示的字段应该是偶然的,当用户选择例如湖泊作为 POI 类型。
在 React admin 中创建前端和 React 资源(包括创建、编辑和列出视图)的合适方法是什么?
感谢您的帮助!
文档中可以帮助您的示例:Linking Two Inputs
解决方案可能如下所示:
import { useFormState } from 'react-final-form'
import { Create, SimpleForm, TextInput, NumberInput, SelectInput } from 'react-admin'
const CreatePOI = (props) => {
const { values } = useFormState()
const choices={[
{ id: 'lake', name: 'Lake' },
{ id: 'airport', name: 'Airport' },
{ id: 'port', name: 'Port' },
]}
return (
<Create {...rest} >
<SimpleForm
<TextInput source="name" />
<SelectInput source="type" choices={choices} />
{ values.type === 'lake' || values.type === 'port' ? <NumberInput source="depth" /> : null }
</SimpleForm>
</Create>
)
}
我们将兴趣点 (POI) 存储在我们的数据库中,并在几个 类 之间做出决定,例如:
- 湖泊
- 机场
- 端口
- ...
所有这些 类 都应该被视为单一资源,因为它们 90% 的属性是相同的(经度、纬度、名称...)。我们面临的挑战是湖泊和港口的深度应为 属性,但机场不应该。
创建视图中显示的字段应该是偶然的,当用户选择例如湖泊作为 POI 类型。
在 React admin 中创建前端和 React 资源(包括创建、编辑和列出视图)的合适方法是什么?
感谢您的帮助!
文档中可以帮助您的示例:Linking Two Inputs
解决方案可能如下所示:
import { useFormState } from 'react-final-form'
import { Create, SimpleForm, TextInput, NumberInput, SelectInput } from 'react-admin'
const CreatePOI = (props) => {
const { values } = useFormState()
const choices={[
{ id: 'lake', name: 'Lake' },
{ id: 'airport', name: 'Airport' },
{ id: 'port', name: 'Port' },
]}
return (
<Create {...rest} >
<SimpleForm
<TextInput source="name" />
<SelectInput source="type" choices={choices} />
{ values.type === 'lake' || values.type === 'port' ? <NumberInput source="depth" /> : null }
</SimpleForm>
</Create>
)
}