javascript - 为什么vuex的actions传的第二个参数是undefined?
本文介绍了javascript - 为什么vuex的actions传的第二个参数是undefined?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
actions.js:
export const fetchRoomLists = ({commit}, cname, limit) => {
const url = `/live/${cname}`
const query = `offset=0&limit=${limit}`
return _get({ url, query }, commit)
.then((json) => {
if (json.error === 0) {
// return commit('FETCH_ROOM_LIST_SUCCESS', json.data)
console.log(query)
}
return Promise.reject(new Error('FETCH_ROOM_LIST_SUCCESS failure'))
})
.catch((error) => {
return Promise.reject(error)
})
在vue文件的dispatch:
mounted () {
this.$store.dispatch('fetchRoomLists', this.$route.params.id, 30)
},
console出来是这样的:
有谁知道是什么问题么?搞半天没搞懂?明明定义了,但是第二个参数一直是undefined,但是一个参数又不会~
解决方案
//template
<el-button type="text" @click="checkDialog('goodsBox','商品列表')">商品box</el-button>
//methods
checkDialog:function(components,title){
var obj ={};
//为了避免action传多个参数会undefined的情况,把所有变量装到一个对象里传过去
obj.components= components;
obj.title = title;
store.commit("openDialog",obj);
}
//vuex
openDialog:function(state,obj){
state.dialog.visible = !state.dialog.visible;
state.dialog.title =obj.title;
state.dialog.current = obj.components;
}
这篇关于javascript - 为什么vuex的actions传的第二个参数是undefined?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文