我正在使用Relay和django-graphene版本2. Country.js正在呈现各国的列表。
使用片段我收到此错误:
警告:RelayModernSelector:包含片段Country_country
的数据的预期对象,得到{"node":{"__fragments":{"Country_country":{}},"__id":"Q291bnRyeVR5cGU6MQ=="}}
。确保父操作/片段包含片段...Country_country
而不包含@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?
答案 0 :(得分:0)