在Apollo GraphQL中,有时我们需要将变量设置为null。例如,在搜索时,某些筛选条件可能是可选的,如果用户没有提供任何值,则我们可以将该变量设置为null并查询所有结果。
以下是一个代码示例,演示如何在Apollo GraphQL中设置空值变量:
query GetBooks($title: String, $genre: String) {
books(title: $title, genre: $genre) {
title
author
genre
}
}
在上面的查询中,我们定义了两个变量:$title和$genre。如果这些值都存在,我们将使用它们来查询书籍,并返回书名、作者和类型。但是,如果其中一个变量为空,我们不能使用它来筛选数据,因此需要将其设置为null。
以下是如何设置null值变量的示例代码:
import { gql } from '@apollo/client';
const GET_BOOKS = gql`
query GetBooks($title: String, $genre: String) {
books(title: $title, genre: $genre) {
title
author
genre
}
}
`;
const variables = {
title: 'Moby Dick',
genre: null // Set genre variable to null
};
// Query books with optional genre filter
client
.query({
query: GET_BOOKS,
variables,
})
.then(result => console.log(result));
在上面的示例中,我们将$genre设置为null,并将变量传递给client.query()函数。这将在不使用genre筛选器的情况下查询所有书籍,并返回包含标题、作者和类型的数据。