【问题标题】:How to call function passed to vuex action function如何调用传递给vuex动作函数的函数
【发布时间】:2020-10-20 07:43:15
【问题描述】:

我的 vue 组件中有一个按钮

<button class="search-participant__btn" @click="getParticipant({iin, index, switchIsLoading})">Найти</button>

getParticipant,是动作 vuex 中的一个函数,我导入到这个组件中

export const getParticipant = ({commit, getters}, {iin, index, callback}) => {
    callback(true);
    axios.post('/getParticipant', {iin}).then(response => {
        if(response.data.success) {
        }
    })
}

但是当我想调用传递给 getParticipant 的函数时,它不起作用,我只需在单击按钮时将名为 isLoading 的本地状态数据更改为 true。然后将其切换为false,当响应回来时

如何正确制作?

【问题讨论】:

  • 你读过这个吗:vuex.vuejs.org/guide/actions.html
  • 是的,但这并没有解决我的问题。我的改变本地状态的函数在 actions.js 之外。所以这就是为什么我将我的函数作为参数传递给 vuex 动作函数

标签: vue.js callback vuex action


【解决方案1】:

在你的 vuex 中创建一个名为 isLoading 的状态,以及一个更新 isLoading 状态的突变。一旦在您的操作中创建了这些,您就可以使用 commit (isLoading, true) 并在完成后使用 isLoading(false)。

然后您可以使用计算函数访问组件中的 isLoading,请参阅文档。

【讨论】:

  • 但这将是一个全局 isLoading,我只在本地状态下需要它。因为我有一个使用 v-for 呈现的组件列表,如果我更改全局 isLoading 它将影响所有组件,但我只需要一个特定组件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多