为什么我得到 "Associated reference no longer appears to be available"?

Why do I get "Associated reference no longer appears to be available"?

我已经在此处解释了整个问题 https://github.com/marmelab/react-admin/issues/5142。不过就Whosebug社区比较活跃,我这里也提到了这个问题。

请解释一下为什么这个示例代码可以正常工作

  <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 属性 传递给 SelectInput。它出什么问题了?我不希望我的 SelectInput 使用 ID 作为值... optionValue 属性 与上述错误消息有何关联?

请帮忙!提前谢谢你

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

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

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

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

我最终遇到这种情况是因为我的模式基于 ra-data-graphql-simple 自述文件中提供的模式。

为了解决,我将 ids 属性 添加到 graphql 模式中的类型过滤器。

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