请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师对commit的使用有些困惑

一般流程:dispatch 触发 actions 调用 commit 触发 mutations 修改 state。
老师这里:
直接在 mutation的方法中再次commit触发mutation内部的方法,可不可以在这里使用action属性呢?

mutations: {
    /**
     * 保存数据到 storage
     */
    saveToStorage(state) {
      uni.setStorage({
        key: STORAGE_KEY,
        data: state.searchData
      });
    },
    /**
     * 添加数据
     */
    addSearchData(state, val) {
      ...
      // 调用 saveToStorage
      this.commit('search/saveToStorage');
    },
    /**
     * 删除指定数据
     */
    removeSearchData(state, index) {
      ...
      // 调用 saveToStorage
      this.commit('search/saveToStorage');
    },
    /**
     * 删除所有数据
     */
    removeAllSearchData(state) {
      ...
      // 调用 saveToStorage
      this.commit('search/saveToStorage');
    }

正在回答 回答被采纳积分+3

1回答

Sunday 2022-02-19 18:48:05

你好

vuex 中是不可以在 mutation 中触发 action 的。因为 mutation 不推荐(可以使用,但是不推荐使用)异步操作

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕丝2377090 #1
    谢谢老师解答,我之前是困惑,为什么在mutation里面的函数提供commit去触发mutation里面另一个函数,因为一般来说mutation里面函数都是原子的,所以第一次看在mutation里面的函数继续使用commit。
    回复 有任何疑惑可以回复我~ 2022-02-20 19:28:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信