要将数组传递给ApolloClient而不是字符串,您可以使用GraphQL变量来传递数组。以下是一个示例代码,展示了如何在ApolloClient中传递数组:
import { ApolloClient, InMemoryCache, gql } from '@apollo/client';
const client = new ApolloClient({
uri: 'https://your-graphql-endpoint',
cache: new InMemoryCache(),
});
const GET_USERS = gql`
query GetUsers($userIds: [ID!]!) {
users(ids: $userIds) {
id
name
}
}
`;
const userIds = ['1', '2', '3'];
client.query({
query: GET_USERS,
variables: { userIds },
}).then(result => {
console.log(result.data.users);
}).catch(error => {
console.error(error);
});
在上面的示例中,我们定义了一个名为GetUsers
的GraphQL查询,其中有一个名为userIds
的变量,这个变量是一个ID类型的数组。然后,我们在ApolloClient的query
方法中使用variables
参数将userIds
数组传递给GraphQL查询。
请注意,userIds
变量在GraphQL查询中用$
符号引用,这是GraphQL语法的一部分。这样,当我们调用ApolloClient的query
方法时,ApolloClient会自动将userIds
变量与GET_USERS
查询中的$userIds
匹配起来。
希望这个示例能帮助你理解如何在ApolloClient中传递数组。