共计 622 个字符,预计需要花费 2 分钟才能阅读完成。
踩坑 uni-app,子组件 Props 设置 Function,父组件把办法传给子组件后,该办法里的 this 指向子组件而不是父组件。
在开发下拉选项组件时,选项弹出要求有前置条件,本想在子组件 Props 绑定一个钩子函数,承受一个回调办法,父组件中设置该办法,通过一些前置条件判断,将后果以执行回调办法时通过参数返回到子组件中,失常 vue web 我的项目齐全没有问题。但时,uniapp 貌似将父组件绑定的办法间接给编译到子组件了,故该办法 this 指向子组件。
// 子组件
export default {
props: {beforeShow: Function,},
methods: {handleSelect() {if(this.beforeShow){
this.beforeShow(v=>{this.show = v;})
}
this.show = true;
}
},
}
// 父组件
export default {
methods: {beforeShow(fn) {fn(!this.type); // 这里的 this 在 uni-app 中指向子组件
}
},
}
尽管说小程序反对对象中的办法,但看评论,如同并不反对。
而且嘴还很硬,啊,对对对 ….
问题链接,https://ask.dcloud.net.cn/que…
如果含有 fn,不要用 props 传参,有的端反对,有的却不反对,除非改设计模式。
所以不要传递 Fn 了,换种形式实现吧。通过 $refs 获取子组件,调用子组件中的办法,来实现一些性能。
正文完