【问题标题】:React-admin: getting error with nested itemReact-admin:嵌套项目出错
【发布时间】:2019-06-19 18:36:46
【问题描述】:

当我创建一个像这样的输入时: 渲染没问题,但是提交时出现错误: index.js:1446 警告:缺少键的翻译:“无法读取 null 的属性 'name'”

export const PatientCreate = props => (
  <Create {...props}>
    <SimpleForm>
      <NumberInput source="bsn" />
      <TextInput source="patientname.firstname" />
      <BooleanInput source="active" />
    </SimpleForm>
  </Create>
);

当我删除嵌套项 Patientname.firstname 时,一切正常..有人知道吗?

使用 Prisma 服务器数据,但错误出现在 Create 中,在 put 发生之前,所以我认为我与 react-admin.. 模型是(Prisma MongoDB):

type Patient {
  id: ID! @id
  bsn: Int @unique
  active: Boolean! @default(value: true)
  patientname: Patientname
  deceased: DateTime
}

type Patientname @embedded {
  firstname: String
}

在 React-admin 文档中: https://marmelab.com/admin-on-rest/Inputs.html#textinput

<TextInput source="author.firstName" />

Tnx 任何人都可以帮助我...

保罗

【问题讨论】:

  • 您好,感谢您报告此事。介意你写完整的错误堆栈跟踪吗?另外,如果您可以在此 CodeSandbox 上重现错误然后分享链接,那就太好了:codesandbox.io/s/n5q09v99xl
  • 我建议您也提供数据提供者的代码。

标签: react-admin


【解决方案1】:

在您的 i18n 翻译文件中需要尊重嵌套引用。

React 管理员尝试使用属性 `resources.[resourcename].fields.[fieldname] (see docs) 进行翻译,如果不存在,它使用源属性上的字符串。如果您有嵌套资源并且没有包含嵌套引用的翻译文件,则会出现该错误,因为找不到嵌套源。

如果您创建这样的翻译文件:

const language = {
  resources: {
    patient: {
      patientname: {
        firstname: "firstname"
      }
    }
  }
};

您的问题已解决。注意需要将此翻译资源添加到 react-admin 中,更多信息可以找到here

【讨论】:

  • 您好,感谢您的回答!在稍微深入细节之后,消息来自 i18n 翻译。它来自嵌套项返回 null 的事实,因此根本没有对象患者名称。我使用的是 ra-admin-prisma link 数据提供程序,但嵌套项处理程序基于嵌入的“mongodb”项目无法正常工作(已经在 github 上出现问题。非常感谢,现在 i18n 翻译,资源翻译工作正常!
猜你喜欢
  • 2018-02-13
  • 2014-09-28
  • 1970-01-01
  • 2016-10-01
  • 2023-03-20
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多