[英]Relay Modern fragment error (expect object to contain data…)
我正在使用Relay和django-graphene版本2。Country.js正在渲染國家列表。
使用片段我得到這個錯誤:警告:RelayModernSelector:預計對象包含片段數據Country_country
,得到{"node":{"__fragments":{"Country_country":{}},"__id":"Q291bnRyeVR5cGU6MQ=="}}
。 確保父操作/片段包括片段...Country_country
@relay(mask: false)
而不帶@relay(mask: false)
。
QueryRenderer返回正確的國家列表,不帶Country_country,只需輸入變量名即可。
<QueryRenderer
environment={environment}
query={graphql`query CartContainerQuery {
viewer {
id
countries(first: 3) {
edges {
node {
...Country_country
}
}
pageInfo {
startCursor
endCursor
}
}
}
}`}
variables={{}}
render={({error, props}) => {
if (error) {
console.log(error)
return <div>Error!</div>;
}
if (!props) {
return <div>Loading...</div>;
}
return (
<div>
{console.log(props)}
<Country country={props.viewer.countries.edges} />
</div>
);
}}
/>
我在Contry Container上的片段:
export default createFragmentContainer(
Country,
graphql`
fragment Country_country on CountryType @relay(plural: true) {
id
name
}
`
)
石墨烯架構:
class CountryType(DjangoObjectType, model=Country):
class Meta:
interfaces= (relay.Node,)
filter_fields = ['name', 'id']
class Viewer(graphene.ObjectType):
class Meta:
interfaces = [relay.Node, ]
countries = DjangoFilterConnectionField(CountryType)
country = graphene.List(CountryType)
def resolve_country(self, info, **kwargs):
return Country.objects.all()
def resolve_countries(self, info, **kwargs):
return Country.objects.all()
class Query(graphene.ObjectType):
viewer = graphene.Field(Viewer)
node = relay.Node.Field()
def resolve_viewer(self, info):
return Viewer()
如果我在QueryRenderer中嘗試此查詢,它也可以正常工作:
query={graphql`query CartContainerQuery {
viewer {
id
country {
...Country_country
}
}
}`}
我是否錯誤地使用DjangoFilterConnectionField?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.