Могу ли я вызвать 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)
})
}
}
Для получения дополнительной информации: