问题描述
我已经在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 - 如果你像我一样自举,是时候将编辑和列表猜测器换成使用引用字段的组件