Vue中mapMutations映射方法的问题
今天又被自己给蠢到,找了半天没发现问题。大家看下代码。
mutation-types.js 里我新增了一个类型。INIT_CURRENTORDER
export const GET_USERINFO = 'GET_USERINFO' export const OUT_LOGIN = 'OUT_LOGIN' export const GET_ORDER = 'GET_ORDER' export const GET_ORDERDETAIL = 'GET_ORDERDETAIL' export const RECORD_USERINFO = 'RECORD_USERINFO' export const INIT_FRONT = 'INIT_FRONT' export const INIT_CURRENTORDER = 'INIT_CURRENTORDER'
mutations.js里也增加了一个对应的事件
[INIT_CURRENTORDER](state) { let order = getStore('currentOrder'); if (order) { state.currentOrder = JSON.parse(order); } },
到目前都没有错,都是正确的。下面前台调用
method:{ ...mapMutations([ 'INIT_CURRENTORDER', ]), async getList(orderid){ this.feedlist=await getFeedbackList(orderid); console.log(this.feedlist); }, changeState(){ } }, mounted(){ this.INIT_CURRENTORDER(); if(this.currentOrder){ this.getList(this.currentOrder.orderid); }else{ console.log(this.currentOrder) } }
大家有看出错误吗?每次一运行就报
this.INIT_CURRENTORDER is not function
思来想去,也检查了,都是写了啊,怎么会报not function,真是出了鬼了。
本来第一个想到的是函数名写错了,但是我的函数名全是复制粘贴的啊,难道
mounted()里不能调用mutations,不会啊,mounted()是Vue生命周期的后期了,模板中html已经开始渲染到html页面中了,所以肯定不是了。
就在我低头丧气趴在桌子上的时候,眼睛瞟了一下method 卧槽,我知道了,这个关键字写错了,应该是 methods:
想着立马敲入一个s, npm run dev ,运行成功~~~~
通过这件事,以后写前端的这些代码一定要小心,仔细!