【问题标题】:Passing data to nuxt fetch, store dispatch not working将数据传递给 nuxt fetch,存储调度不起作用
【发布时间】:2020-02-23 20:23:21
【问题描述】:

我正在尝试将参数传递给 store.$dispatch,但如果我从 data 中调用数据,它会说数据未定义。

为什么这不起作用:

data () {
  return {
    year: '2019'
  }
},
async fetch({store}) {
    await store.dispatch('posts/fetchAll', this.year)
},

但这确实:

async fetch({store}) {
    await store.dispatch('posts/fetchAll', '2019')
},

我正在使用 veux 和 nuxt。

更新

所以从第一个答案中我可以看出为什么我正在做的事情不起作用。但是必须有一种方法可以使用获取和更新基于数据的查询吗?假设我有一个表单选择,我希望用户能够根据年份更改数据?

【问题讨论】:

    标签: javascript vue.js fetch vuex nuxt.js


    【解决方案1】:

    文档说:

    警告:您无权通过此访问组件实例 在 fetch 内部,因为它在启动组件之前被调用。

    您无法访问 this,因为 fetch 在服务器端调用,而您的 data() 在客户端

    【讨论】:

    • 啊,好的,谢谢,那么您将如何根据表单字段更改值?
    • 您是否要将表单中的数据存储到您的商店中?
    • 我认为不需要。基本上我希望用户能够在页面上选择一年,然后将其传递给商店以更新 api 调用
    猜你喜欢
    • 2020-11-11
    • 1970-01-01
    • 2020-09-01
    • 2012-02-29
    • 2017-05-15
    • 1970-01-01
    • 2012-09-01
    • 2015-08-20
    • 2016-04-03
    相关资源
    最近更新 更多