在 react-apollo 查询中使用变量
Using Variables with react-apollo Query
我已将查询附加到我的 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 $
。这种将变量传递给查询的方法在多个源中重复出现。我在这里做错了什么?
应该是:
query GetStoriesNearbyByGeoHash($geoHash: String!) {
getStoriesNearbyByGeoHash(geoHash: $geoHash){
id
}
}
看看如何在 graphql 中使用变量:http://graphql.org/learn/queries/#variables
我已将查询附加到我的 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 $
。这种将变量传递给查询的方法在多个源中重复出现。我在这里做错了什么?
应该是:
query GetStoriesNearbyByGeoHash($geoHash: String!) {
getStoriesNearbyByGeoHash(geoHash: $geoHash){
id
}
}
看看如何在 graphql 中使用变量:http://graphql.org/learn/queries/#variables