首页 > 解决方案 > 如何减少中继片段中的重复

问题描述

我有几乎相同但针对不同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
      }
    }
  }
`;

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

标签: graphqlrelayrelaymodern

解决方案


推荐阅读