使用带有 react-apollo 查询的变量

Posted

技术标签:

【中文标题】使用带有 react-apollo 查询的变量【英文标题】:Using Variables with react-apollo Query 【发布时间】:2018-09-25 13:13:11 【问题描述】:

我已将查询附加到我的 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】:

应该是:

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

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

【讨论】:

谢谢!这让我发疯了几个小时。

以上是关于使用带有 react-apollo 查询的变量的主要内容,如果未能解决你的问题,请参考以下文章

React-Apollo:带变量的查询导致 UI 不再乐观

如何在 react-apollo graphql 查询中正确使用动态变量?

ReactJS/Javascript/Graphql/React-apollo:传递查询变量

Graphql,react-apollo如何在加载组件状态时将变量传递给查询

在 react-apollo 中使用 refetchQueries 时使用现有变量

React-Apollo Query 组件变量永远不会更新