Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphql 如何减少中继片段中的重复_Graphql_Relay_Relaymodern - Fatal编程技术网

Graphql 如何减少中继片段中的重复

Graphql 如何减少中继片段中的重复,graphql,relay,relaymodern,Graphql,Relay,Relaymodern,我有几乎相同的组件,但目标是不同的graphql实体,我试图找出是否有一种方法可以减少代码的重复。例如,我有两个片段: const PROCESS_REQUEST_MUTATION_A = graphql` mutation EntityA($input: ProcessRequestInput!) { processRequest(input: $input) { errors currentRequest { id stat

我有几乎相同的组件,但目标是不同的graphql实体,我试图找出是否有一种方法可以减少代码的重复。例如,我有两个片段:

const PROCESS_REQUEST_MUTATION_A = graphql`
  mutation EntityA($input: ProcessRequestInput!) {
    processRequest(input: $input) {
      errors
      currentRequest {
        id
        state
        items {
          edges {
            item {
              id
            }
          }
        }
        events {
          ...RequestHistory_events
        }
      }
      nextRequest {
        id
        primaryType
      }
    }
  }
`;
在另一个本质上是重复的组件中,我有:

const PROCESS_REQUEST_MUTATION_ = graphql`
  mutation EntityB($input: ProcessRequestInput!) {
    processRequest(input: $input) {
      errors
      currentRequest {
        id
        state
        items {
          edges {
            item {
              id
              ...EntityB_item
            }
          }
        }
        events {
          ...RequestHistory_events
        }
      }
      nextRequest {
        id
        primaryType
      }
    }
  }
`;

我希望只有一个组件,并以某种方式简化片段以处理此问题,而不会有太多重复。

我不确定您在这里要问什么。您提供了两种不同的突变,而不是片段。但考虑到相同的突变只是不同的字段选择,我总是使用第二个,因为它是第一个的超集。我有类似的问题,我有一个分页容器,它有两个片段:
…EntityRow_entity…EntityCard_entity
,片段完全定义了相同的字段集。我知道我们可以导入两种类型并使用它们,但实际上这是一种代码复制。我不确定你在问什么。您提供了两种不同的突变,而不是片段。但考虑到相同的突变只是不同的字段选择,我总是使用第二个,因为它是第一个的超集。我有类似的问题,我有一个分页容器,它有两个片段:
…EntityRow_entity…EntityCard_entity
,片段完全定义了相同的字段集。我知道我们可以导入两种类型并使用它们,但实际上这是一种代码复制。