【问题标题】:Nuxt reload api data failsNuxt 重新加载 api 数据失败
【发布时间】:2020-03-17 13:25:45
【问题描述】:

在解决重新加载问题时需要一些帮助。 我通过服务获取数据:

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'
    })
  }
},

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

【问题讨论】:

    标签: api async-await axios nuxt.js


    【解决方案1】:

    如果您在分页组件上使用它,它不重新加载的原因是 fetch 它将在服务器端调用一次,并且在导航到更多路由时在客户端调用。

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

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

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

    【讨论】:

    • 感谢您的回答。我会检查一下..我现在很怀疑为什么我应该一直通过商店...在一些教程中,他们直接在实际的 index.vue 中调用 API ..你能给我一些关于那..感谢您的帮助。
    • 我找不到适合的方法:我的代码中的 watchQuery..watchQuery: true 或 watchQuery (newQuery, oldQuery) {}..no success
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 2019-07-26
    • 2022-01-08
    • 1970-01-01
    • 2021-12-14
    • 2020-05-06
    相关资源
    最近更新 更多