为了账号安全,请及时绑定邮箱和手机立即绑定

Vuex 问题。this.$store.dispatch(...) 工作

Vuex 问题。this.$store.dispatch(...) 工作

繁星点点滴滴 2022-11-11 16:31:46
我从 vuex 调度 Actions 时遇到问题,我不知道为什么,但是 ...mapActions 不会触发对 Jsonplaceholder 的请求。但是this.$store.dispatch返回所有 10 个用户没有任何问题,所以这里是两个文件的脚本,home.vue 页面和 store.js:家:<script>  import { mapGetters, mapActions } from "vuex";  export default {    name: "Home",    created() {      // this.$store.dispatch('fetchUsers')      console.log(this.$store);    },    computed: {      ...mapGetters(["getUsers"])    },    methods: {      ...mapActions(["fetchUsers"]),      increment() {        this.$store.commit("increment");        console.log(this.$store.state.count);      }    }  };</script>店铺:const store = new Vuex.Store({  state: {    count: 0,    users: []  },  getters: {    getUsers(state) {      return state.users;    }  },  mutations: {    increment(state) {      state.count++;    },    setUsers(state, users) {      console.log(state, users);      state.users = users;    }  },  actions: {    fetchUsers({ commit }) {      return new Promise(resolve => {        fetch("https://jsonplaceholder.typicode.com/users")          .then(response => {            return response.json();          })          .then(result => {            console.log(result);            commit("setUsers", result);            return resolve;          })          .catch(error => {            console.log(error.statusText);          });      });    },    incrementUsers({ commit }) {      commit("fetchUsers");    }  }});
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

正如您在此处使用mapGetters的mapActions:


import {mapGetters, mapActions} from 'vuex'

更简单的方法是:


created() {

  this.fetchUsers()

  console.log(this.getUsers)

},

computed: {

  ...mapGetters(['getUsers'])

},

methods: {

  ...mapActions(['fetchUsers']),

}

此外,以防万一您喜欢使用名称间距


查看完整回答
反对 回复 2022-11-11
  • 1 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号