将 react-admin 文本输入的 "defaultValue" 和 "source" 映射到同一对象的两个不同属性

Map "defaultValue" and "source" of a react-admin text input to two different properties of the same object

我有一个奇怪的 API 端点,其中同一个字段有两个属性。

{
 id:"123",
 title: {
  rendered: "Hi, i'm rendered",
  raw: "<p> Hi, I'm the title</p>"
}

在编辑表单中,我有一个这样的组件:

        <TextInput
            source="title.raw"
            defaultValue="title.rendered"
            validation={{ text: true }}
            validate={required()}
            />

但这不起作用。我怎样才能让 title.rendered 显示为默认值,但 title.raw 是发送回端点/服务器的内容?

试试这个:

import { FormDataConsumer } from 'react-admin'

<Edit ...>
  ...
  <FormDataConsumer>
    {({ formData, ...rest }) =>
      <TextInput
        source="title.raw"
        defaultValue={formData.title.rendered}
        validation={{ text: true }}
        validate={required()}
      />
    }
  </FormDataConsumer>
</Edit>