为什么会出现“关联的参考不再显示”的信息?

问题描述

我已经在https://github.com/marmelab/react-admin/issues/5142处解释了整个问题。但至于stackoverflow社区更活跃,我也在这里提到了这个问题。

请向我解释一下,为什么此示例代码正常工作

  <ReferenceInput label={"Specification"} perPage={20} source={"specificationName"}
                                    reference={ResourceNames.SPECIFICATIONS}>
                        <SelectInput optionText={"name"}/>
   </ReferenceInput>

代码显示"Associated reference no longer appears to be available"错误消息时。

  <ReferenceInput label={"Specification"} perPage={20} source={"specificationName"}
                                    reference={ResourceNames.SPECIFICATIONS}>
                        <SelectInput optionText={"name"} optionValue={"name"} />
   </ReferenceInput>

上述示例之间的唯一区别-是传递给optionValue的{​​{1}}属性。它出什么问题了?我不希望我的SelectInput使用SelectInput作为值... ID属性如何与上述错误消息相关?

请帮助!预先谢谢你

解决方法

我找到了解决方案。 React-Admin需要id进行资源识别。

但是,如果您需要资源的自定义标识符,请查看下面的文章

请参见https://marmelab.com/react-admin/FAQ.html#can-i-have-custom-identifiersprimary-keys-for-my-resources

,

如果您的模型过滤器不接受在 Web 控制台中观察到的 ids 属性,也会发生此错误。

我最终处于这种情况,因为我的架构基于 ra-data-graphql-simple 自述文件中提供的架构。

为了解决这个问题,我在 graphql 模式的类型过滤器中添加了 ids 属性。

PS - 如果你像我一样自举,是时候将编辑和列表猜测器换成使用引用字段的组件