猿问

大佬们遇到过这个问题吗?Vue 中props的函数默认值问题

props中函数默认值,如何执行当前组件的方法?
methods:{
sayHi(){
alert('hi');
}
},
props:{
keyword:{
default:'a'
},
say:{
type:Function,
default:this.sayHi
}
}
无法拿到this.sayHi函数
有只小跳蛙
浏览 885回答 2
2回答

MMMHUHU

prop会在一个组件实例创建之前进行验证,所以即使你是用工厂函数this也不指向组件实例唯一能与methods共享function的方法是把function单独写在实例外functionsayHi(){alert('hi');}exportdefault{methods:{sayHi,},props:{say:{type:Function,default:sayHi,},

喵喵时光机

你好好想想this是啥。两个做法:如果此props是callback性质的话,建议改为事件绑定。或者使用计算属性包装,returnthis.say||this.sayHi,然后调用此计算属性。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答