1、我用$emit方法去实现子组件调用父组件方法的功能,开始的时候都能正常使用,但是后来我在下面的代码中就无法触发了,网上说是方法大小写的原因,但是改了之后还是不行~
代码如下:
editCreditApi(params).then((res) => {
let rowId = this.$store.state.rowId;
let status = this.$store.state.productStatus;
let productType = this.$store.state.dialogType;
let params = {
id: rowId
}
if (status == '草稿') {
creditreferAPI(params).then((res) => {
**this.$emit('getFundList','edit');**
})
}
})
但是,把这段代码放到外面就能正常调用:
editCreditApi(params).then((res) => {
let rowId = this.$store.state.rowId;
let status = this.$store.state.productStatus;
let productType = this.$store.state.dialogType;
let params = {
id: rowId
}
//可以正常调用
this.$emit('getFundList','edit');
if (status == '草稿') {
creditreferAPI(params).then((res) => {
//正常弹出
alert(1)
try{
//无法触发
this.$emit('getFundList','edit');
}catch(e){
//无输出
console.log(e)
}
//正常弹出
alert(2)
})
}
})
不知道大家有没有遇到这种情况,或者是知道是这种情况是什么原因导致的,如能解惑,万分感激!
ps:大家都觉得是this的指向问题导致的,但是我在外面用that把this存起来,再去调用还是不行~
$on和$emit的执行顺序,需要先执行$on监听一个事件,然后再执行$emit来触发所监听的这个事件