Nuxt重新加载API数据失败

时间:2019-11-21 15:01:03

标签: api async-await axios nuxt.js nuxt

需要一些帮助来解决重装问题。 我通过服务获取数据:

import axios from 'axios'

const apiClient = axios.create({
 baseURL: 'www.domain/api/v1',
 headers: {
 Accept: 'application/json',
 'Content-Type': 'application/json'
 }
})

export default {
 getCompanies() {
return apiClient.get('/companies')
},

在商店中

export const actions = {
 fetchCompanies({ commit }) {
 return CompanyService.getCompanies().then(response => {
  commit('SET_COMPANIES', response.data)
 })
},

在页面/公司中:

async fetch({ store, error }) {
  try {
    await store.dispatch('company/fetchCompanies')
  } catch (e) {
    error({
      statusCode: 503,
      message: 'Unable to fetch Companies at this time'
    })
  }
},

工作正常,但是页面上的数据没有重新加载。 一些帮助会很棒。

1 个答案:

答案 0 :(得分:2)

如果在分页组件上使用它,则不重新加载的原因是fetch一次将被称为服务器端,而在导航至其他路由时将被称为客户端。

  

默认情况下,在查询字符串更改时不调用fetch方法。如果要更改此行为,例如在构建分页组件时,可以设置应通过页面组件的watchQuery属性侦听的参数。在API watchQuery页面上了解更多信息。

查看Nuxt文档:https://nuxtjs.org/api/pages-fetch/

您可以使用watchQuery来解决此问题。 https://nuxtjs.org/api/pages-watchquery