0

我的 Prismic/Nuxt 项目中有一个搜索页面,它对 Prismic API 进行全文查询。

这段代码将做到这一点

export default {
  name: 'Search',
  async asyncData({ $prismic, params, query, error }) {
    try {
      // Query to get post content

      const products = await $prismic.api.query($prismic.predicates.fulltext('my.product.title', query.q), { orderings: '[my.product.title desc]' })
      // Returns data to be used in template
    
      return {
        products: products.results,
      }
    } catch (e) {    
      // Returns error page
      error({ statusCode: 404, message: 'Page not found' })
    }
  },
}

网址是/search/?q=somesearch

问题是,如果我在没有查询参数的情况下点击 /search/ ,它会立即遇到错误Unable to encode undefined of type undefined,这显然是因为它尝试使用未定义的值查询 API,但我似乎不知道如何制作如果未设置查询,则不查询 API 的有效检查,而是仅显示搜索框。

我试过了

if query.q !== undefined 

在尝试部分,但这不起作用。

4

1 回答 1

1

要检查未定义的值,您可以使用:

if (typeof query.q !== 'undefined')

typeof将数据类型作为字符串返回,这使得检查未定义的值成为可能。

于 2020-11-01T11:56:15.043 回答