我在使用React JS和Relay JS以及GraphQL时遇到了麻烦,尽管对GraphQL的查询有效,但它仍然会收到相同的错误消息。一切正常,直到我们决定使用GraphQl的Unions。现在我可以从GraphQl获取数据,但它一直出错。
我提出这个问题:
query {
node(id: "value"){
... on Node {
... on User {
name
email
domain {
... on Domain {
users(first: 100){
edges{
node{
... on User{
name
email
}
}
}
}
}
}
}
}
}
}
它接受从API接收对象
UserOrErrorsUnion {
User{
name
email
...
}
ErrorSet{
errors
}
}
反应组件代码如下:
export class LoggedConnect {
...
}
export default translate(['common', 'root'], { wait: true })(
Relay.createContainer(LoggedConnect, {
fragments: {
user: () => Relay.QL`
fragment on UserOrErrorsUnion {
... on User {
name
id
email
}
}
`,
},
})
);
错误就是这个:
(程序):36警告:RelayReadyState:状态从
{"aborted":false,"done":false,"error":{},"events":[{"type":"NETWORK_QUERY_START"},{"type":"CACHE_RESTORE_START"},{"type":"CACHE_RESTORE_FAILED"},{"type":"NETWORK_QUERY_ERROR","error":{}}],"ready":false,"stale":false}
更改为{"error":{}}
无效。
我认为这是因为中继收到两个对象并且不知道如何处理它们,所以状态变得不一致