我可以从 vuex 调用 storyapi 吗?

Can I call storyapi from vuex?

我正在使用 storyblok-nuxt 模块。我将它插入 nuxt.cofig.js,当我在 asyncData 方法中直接调用它时,它在页面中工作正常:

  asyncData({ app }) {
    return app.$storyapi.get("cdn/stories/articles", {
        version: "draft"
      })

为了从 vuex 中调用它,我正在导入它:

import storyapi from 'storyapi'

但是Nuxt给我一个错误:

Cannot find module 'storyapi'

我可以在 vuex 中使用这个模块吗?如果可以,有什么解决方案?

在 Nuxt 中使用 storyapi 非常简单。在您的 asyncData 中,您可以像这样发送您的操作:

asyncData ({ store }) {
  store.dispatch('loadSettings', {version: "draft"})
}

并且在您的商店操作中,您可以直接前往 this.$storyapi。无需导入任何东西。 Nuxt 为您搞定一切:

export const actions = {
  loadSettings({commit}, context) {
    return this.$storyapi.get("cdn/stories/articles", {
      version: context.version
    }).then((res) => {
      // execute your action and set data    
      commit('setSettings', res.data)
    })
  }
}

更多信息: