如果参数为 null,则不 运行 查询

Don't run query if parameter is null

关于此 GraphQL 查询,我想寻求您的指导。 我希望它检查查询参数是否为 null 并且不触发查询。 目前尽管查询为空,但它检索了所有数据,这意味着我们使用了一些不必要的计算能力。

const search_reviews= gql`
 query SearchReviews ($my_query: String) {
    reviews (filters: {or: [{body: {contains: $my_query} }, {title: {contains: $my_query}}]}) {
      data{
        id
        attributes{
          title
          rating
          body
          categories{
            data{
              id
              attributes
              {
                name
              }
            }
          }
        }
    }
  
 }
}

`

以及来自 React 的代码

const [ first, setFirst ] = useState(false)
    const [ query, setQuery] = useState("")

    const { loading, error, data } = useQuery(search_reviews, {variables: {my_query: query}})
    if (loading) return <p>Loading data...</p>
    if (error) return <p>Error fetching data</p>
    console.log(data)

这是答案:

    const { loading, error, data } = useQuery(search_reviews, {skip: !first,variables: {my_query: query}})

您可以使用 useQuery 挂钩选项的 skip 键来实现此目的:

const { data, loading, error } = useQuery(SEARCH_REVIEWS, {
  variables: /* snip */,
  skip: !param,
});