我在使用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
        }
      }
      `,
    },
  })
);

错误是这一个:

(program):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} to {“错误”:{}} .

我认为这是因为中继接收两个对象并且不知道如何处理它们,因此状态变得不一致