Могу ли я вызвать Storyapi из 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, и если да, то какое решение?

1 ответ

Решение

С помощью storyapiс Nuxt очень просто. В вашем 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)
    })
  }
}

Для получения дополнительной информации:

Другие вопросы по тегам