Apollo GraphQL变量查询

时间:2017-09-21 10:58:34

标签: reactjs react-native graphql apollo react-apollo

在阅读了Apollo React文档后,我无法使用Redux提供的displayLocation组件的道具变量DiscoveryList来创建GraphQL查询。下面给出displayLocation的流类型: -

type DisplayLocation = {
  lat: number,
  lng: number,
};

我收到以下错误: - Variable lat of type Float! was provided invalid value,令人惊讶的是,float变量的提供值为37.33233141。 Redux和Apollo Component集成代码如下: -

export default compose(
  connect(({ displayLocation }) => ({ displayLocation }), {
    updateDisplayLocation,
  }),
  graphql(
    gql`
    query DiscoveryList($lat: Float!, $lng: Float!) {
      destinations(radius: {
        latitude: $lat,
        longitude: $lng,
        distance: 10000})
        { name
          id
          country_code
        }
      }`,
    {
      options: ({ displayLocation }) => ({
        variables: {
          lat: displayLocation.lat,
          lng: displayLocation.lng,
        },
      }),
    },
  ),
)(DiscoverList);

非常感谢你的帮助。

我还想知道将redux道具提供给Apollo GraphQL查询,我们应该首先connect()还原,然后是Apollo graphql(),或者在导出组件之前反过来吗?

1 个答案:

答案 0 :(得分:0)

定义如下:

type DisplayLocation = {
  lat: Float,
  lng: Float,
}

查看更多图表。