使用变量与react-apollo查询

时间:2018-04-15 20:24:24

标签: javascript graphql apollo react-apollo graphql-tag

我已将查询附加到我的React Native组件,如下所示:

let getNearbyStoriesQuery = gql`{
  getStoriesNearbyByGeoHash(geoHash: "8k"){
      id
  }
}`;

export default graphql(getNearbyStoriesQuery,
  {
    props: (props) => {
      debugger;
      let storiesNearby = props.data.getStoriesNearbyByGeoHash.map((story) => {
        return {
          id: story.id,
        }
      });
      return {storiesNearby};
    },
    variables: {
      geoHash: mockGeoHash
    }
  })(Home);  // Home is the React Native Component

只要我在查询中对geoHash中的值进行硬编码,我就可以使用此技术检索数据;在这种情况下,我使用" 8k"。但是,当我尝试修改查询以便我可以在这样的变量中插入:

let getNearbyStoriesQuery = gql`{
      getStoriesNearbyByGeoHash($geoHash: String!){
          id
      }
    }`;

我收到错误Expected Name, found $。这种将变量传递给查询的方法在多个源上重复。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

应该是:

query GetStoriesNearbyByGeoHash($geoHash: String!) {
    getStoriesNearbyByGeoHash(geoHash: $geoHash){
         id
    }
}

看看如何在graphql中使用变量:http://graphql.org/learn/queries/#variables