【问题标题】:How to bring the payload stored via mutations如何将通过突变存储的有效负载
【发布时间】:2021-09-08 16:01:47
【问题描述】:

使用@click 事件添加数字但不起作用。

Counter.vue

<script>
import { mapState, mapMutations  } from "vuex"
export default {
  data() {
    return{
      //payload
      value: 1,
    }
  },
  computed: {
    ...mapState(["counter"])
  },
  method: {
    ...mapMutations(["addToCounter"])
  }
}
</script>

在 main.js 上

import { createApp } from 'vue'
import { createStore } from "vuex";

import App from './App.vue';
const store =  createStore({
  state() {
    return {
      counter: 11,
    }
  },
  mutations: {
    addToCounter(state, payload){
      state.counter = state.counter + payload;
    }
  }
})

//connecting store to the application
const app = createApp(App)

//using the store that is created
app.use(store)

app.mount('#app')

没有错误,但 addToCounter 不起作用,而在触发 @click 时应该将值添加到计数器。

【问题讨论】:

  • 抱歉,还有一个要添加。h1 class="counter">{{ counter }}
  • 请随意正确编辑您的问题以添加此问题。
  • 标签: nuxt.js vuejs3 vuex4


    【解决方案1】:

    请在发布您的问题时努力格式化。

    • 应该是methods 而不是method
    • 什么是main.js? Nuxt 中没有这样的文件,你不应该创建自己的商店,因为它已经被烘焙了:https://nuxtjs.org/docs/2.x/directory-structure/store
    • createAppcreateStore 与 Vue3 相关,因此与 Vue2 不兼容(目前 Nuxt 使用)
    • 您不应调用 vuex 突变来更新状态,而应调用其他操作来更新状态。

    【讨论】:

    • 我实际上是在尝试按照此处的指南进行操作。 youtube.com/watch?v=y7DQhNs9Azw&t=1360s 我相信我需要了解 Vue3 中的整个上下文才能使我的项目正常运行
    • 终于成功了,是因为方法错了。
    • 是的,尤其是如果您遵循 Vue3 教程,请不要使用 Nuxt,因为两者不兼容,而且由于您正在尝试学习 Vuex4,所以这里没有任何好处。
    • 在上面的 Kissu 上注明。发布代码时,我一定会付出更多的努力。
    • 老实说,我正在尝试学习 Nuxt,但有一些我不理解的语法,显然它来自我现在正在学习的 Vue。这是我第一次在 MVC 上工作,所以如果我问这么多初学者问题,我深表歉意。
    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2020-11-15
    • 2011-04-19
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多