vue.js - 从 Vuex 调用 Mixin 全局方法
问题描述
我有一个这样的mixin,带有一个调用axios和处理错误等的请求方法:
import Vue from 'vue'
import axios from 'axios';
Vue.mixin({
methods: {
request(url, datas) {
//Call axios and return premise
[...]
}
});
我有一个这样的商店:
const actions = {
selectEmployees: (store, keywords) => {
this.request(`/users/list/search{/keywords}`).then(e => {
store.commit('SELECT_EMPLOYEES', e.data)
});
}
}
let store = new Vuex.Store({
state: state,
mutations: mutations,
getters: getters,
actions: actions
})
我想使用 request 来调用 axios 但我有这个错误:
挂载钩子中的错误:“TypeError:无法读取未定义的属性“请求””TypeError:无法读取未定义的属性“请求”
解决方案
如文档中所述,Mixins用于组件。Vuex 本身并不是一个组件。正如我所看到的,您正在使用新的导入/导出工作方式,只需将您的混音设置为导出的简单函数即可。然后在其他地方要么将它们作为 mixin 附加到 Vue,要么在商店外部使用它。沿线的东西(半代码):
// mixin.js
export default function request() {}
// main.js
Vue.mixin({
methods: {
request: mixin.request // will provide this.request in each component
}
}
// store.js
mixin.request() // will fire the method
推荐阅读
- python - 减少python中的空垃圾箱
- python - 在 macOS 上找不到 aws-cli
- javascript - 为什么删除类时会应用转换?
- wix - 将 Wix 3.0 迁移到 Wix 4.0 时出现错误:WXCP0006:此节点前面的空格不正确(WhitespacePrecedingNodeWrong)
- php - Auth::id() 返回 null laravel
- c# - 如何简化代码?(数据集结果)
- uber-api - 优步乘车小部件错误
- excel - 计算通过条件的连续值的首次出现
- video - 平均图像中的所有视频帧
- ionic3 - Ionic 3 inappbrowser 下载文件