父组件使用this.$refs调用子组件参数或方法时,提示undefined的解决方法
报错信息:Vue warn]: Error in v-on handler: "TypeError: Cannot set property 'baseurl' of undefined" found in
这种情况下,一般都是父组件调用子组件方法的时候,子组件还未渲染成功。要搞清楚这个问题,我们要搞清楚父子组件的生命周期就行了。
1、加载渲染过程
父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子 beforeMount->子mounted->父mounted
2、子组件更新过程
父beforeUpdate->子beforeUpdate->子updated->父updated
3、父组件更新过程
父beforeUpdate->父updated
4、销毁过程
父beforeDestroy->子beforeDestroy->子destroyed->父destroyed
这种情况下,我们可以在使用父组件调用子组件方法的时候,使用this.$nextTick()
this.$nextTick(() => {
console.log('子组件参数值为:', this.$refs.myChild.baseurl)
})