在反应管理员中使用动态字段创建元素/资源

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>
  )  
}