如何使用关系参数,React Native

时间:2018-09-05 04:38:48

标签: react-native graphql apollo-client

我有一个React Native App,它提供了我的属性列表。每个属性都有其自己的页面和指向屏幕的链接,该屏幕列出了与该属性以及该用户相关联的所有注释。因此,用户只能在此屏幕上看到他们为此属性创建的注释。

我在编写GraphQL查询时遇到麻烦,该查询获取与当前属性和当前用户关联的所有注释。

我的基本本能是这样写的...

const getNotes = gql`
  query getNotes {
    allPropertyNotes(filter: {
        AND: [{
            propertyId: ${this.props.navigation.state.params.id}
        }, {
            userId: ${this.props.screenProps.user.id}
        }]
    }, orderBy: createdAt_DESC) {
        id
        title
        body
    }
}
`;

但这似乎不起作用,因为查询是在组件外部定义的,并且无法访问this.props(我假设)。

尽管如此,我接下来要做的是

const getNotes = gql`
  query getNotes($userId: ID!, $propertyId: ID!) {
    allPropertyNotes(filter: {
        AND: [{
            propertyId: $propertyId
        }, {
            userId: $userId
        }]
    }, orderBy: createdAt_DESC) {
        id
        title
        body
    }
}
`;

但是我不确定如何将变量绑定到所需的ID上。有关如何执行此操作的任何指示?

1 个答案:

答案 0 :(得分:0)

如果只需要“挂载查询”,则只需使用props作为变量来渲染<Query/>组件。 Example with variables

graphql() options.variables

相同

传递查询(默认情况下在开始时触发)和[许多]突变作为道具适用于更复杂的情况。 docs

这里的文档不是很冗长,您必须从许多地方/地方收集知识或搜索教程。