在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筛选器的情况下查询所有书籍,并返回包含标题、作者和类型的数据。