【问题标题】:How to concat a variable in relay fragment如何在中继片段中连接变量
【发布时间】:2016-11-13 20:28:49
【问题描述】:

当我们使用${Component.getFragment('fragment')} 时类似,有没有一种方法可以简单地将变量与中继片段内的有效查询连接起来?与此类似:

const query = `
    allFriends {
        id
    }
`

Relay.createContainer(Component, {
    fragments: {
      viewer: () => Relay.QL`
        fragment on Query {
          allUsers {
            id
          }

          ${query}

        }
      `
    }
});

谢谢!

【问题讨论】:

    标签: graphql relay


    【解决方案1】:

    RelayQL 插件允许您通过将片段定义为变量来执行此操作。 See example here 在 RelayQL 文档页面上或参见下面的示例:

    在这里,我在 Email 类型上创建了一个片段,我可以将该片段注入到任何 Email 类型的字段中,例如 Interview#email 或 User#email:

    const emailFragment = Relay.QL`
      fragment on Email {
        from
        to
        body
        subject
      }
    `;
    
    export default Relay.createContainer(Component, {
      initialVariables: {
        emailId: $emailId
      },
      fragments: {
        interview: () => Relay.QL`
          fragment on Interview {
            recordId
            email {
              ${emailFragment}
            }
          }
        `,
        viewer: () => Relay.QL`
          fragment on User {
            recordId
            email(id: $emailId) {
              ${emailFragment}
            }
          }
        `
      }
    });
    

    【讨论】:

    • 谢谢!我真的没有在文档中找到它:/ 这解决了我的问题。
    猜你喜欢
    • 2016-10-18
    • 2017-01-21
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2016-08-23
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多