Vue:是否可以在 Vuex 操作中设置另一个状态?

伯顿洛厄尔

我有一个叫做activateProgram我调度的 Vuex 动作我希望在那里设置的状态设置loadingData为 true,然后在 api 请求完成时将其设置为 false。我想将此状态用作我视图中微调器的标志。这可能吗?

actions: {
    activateProgram: (context, data) => {
        /// SET A ANOTHER STATE RIGHT HERE TO MARK THAT A REQUEST STARTED
        return axios.post(data.url, data.request)
            .then((response) =>
                 /// SET THAT STATE TO FALSE WHEN THE API REQUEST IS FINISHED
                context.commit('toggleProgram', true)
            )
            .catch((error) =>
                context.commit('toggleProgram', false)
            );
    }
 }
罗斯塔

以下是一个相当常见的模式,借自这篇文章

const actions = {
  fetchApiData (store) {  
    // sets `state.loading` to true. Show a spinner or something.
    store.commit('API_DATA_PENDING') 

    return axios.get('someExternalService')
      .then(response => {       
        // sets `state.loading` to false 
        // also sets `state.apiData to response`
        store.commit('API_DATA_SUCCESS', response.data) 
      })
      .catch(error => { 
        // set `state.loading` to false and do something with error   

        store.commit('API_DATA_FAILURE', error)
      })
    }
}

loading为您的州添加一面旗帜。它可能是有意义的组loadingtoggleProgram突变在一起。“挂起”突变可以切换loadingtrue,而“成功”和“失败”提交将设置loadingfalse并根据需要改变程序状态。

为每个 ajax 帖子都这样做可能会让人厌烦,所以下一步可能是添加一个抽象

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一个Vuex模块可以监视另一个Vuex模块吗?

如何在Nuxt中从另一个状态访问一个Vuex状态?

Vuex:来自另一个模块的访问状态

Vuex 与另一个互锁状态

我可以在 Vuex 中使用一个突变设置多个状态参数吗?

创建一个URL并根据其参数设置Vue.js Vuex状态

将变量从 Vue 3 组件传递到另一个文件而不使用 Vuex

在 Nuxt 中,如何从另一个模块中改变一个模块中的 Vuex 状态?

不更改Vuex存储中的模块状态。Vuex | Vue

当另一个vuex中的吸气剂发生变化时,我可以重新计算吸气剂吗?

如何使用另一个模块中的模块中的吸气剂来进行Vuex状态

是否可以使用int变量在SQL中设置另一个变量的大小

在 Vue 2 上的 Vuex 中调用 getter 是否安全?

Vue与Vuex:是否可以在商店内注入/弹出组件?

Vue - 是否可以在组件的计算属性中使用 Vuex getter?

Vue.js。是否可以通过一个 <slot> 穿过另一个?

在VBA中,是否可以将一个范围设置为相对于另一个范围?

无法在vue组件中获取vuex状态

Vue.js / Vuex登录:[vuex]未知操作类型:postLogin。

尝试从另一个组件设置状态,以便可以弹出我的模态

是否可以指定一个属性也需要设置另一个属性?

如何从另一个vuex模块访问getter?

从Vuex中的一个模块更改另一模块状态

是否可以检查一个功能是否在另一个功能中修饰?

Vuex:如何使用基于另一个状态变量的值定义状态变量?

vuex动作是否有一个created()自动分派

Vue2Js:是否可以从另一个组件中调用具有属性的方法?

是否可以通过vue中的另一个功能模拟点击路由器链接元素

如何更改一个组件中的状态并在另一个 Vue.js 中监听它?