Vue.js组件引用和转换不在一起
模板:Vue.js组件引用和转换不在一起,vue.js,vuejs2,vue-component,vue-router,Vue.js,Vuejs2,Vue Component,Vue Router,模板: <transition name="slide-fade" mode="out-in"> <router-view ref="route" @resetSteps="handleResetSteps" @nextStep="handleNextStep"></router-view> </transition> 出于
<transition name="slide-fade" mode="out-in">
<router-view ref="route" @resetSteps="handleResetSteps" @nextStep="handleNextStep"></router-view>
</transition>
出于某种原因,当我将转换应用于上述模板时,计算属性对引用组件的访问不起作用
我的意思是,我在当前的ref上得到了'undefined',尽管我确保等待直到路由器处理'push'(这就是我为什么使用'isMounted'属性的原因)
如果我删除了transition标记,一切都会按预期进行
你知道为什么吗
$REF仅在渲染组件后填充,并且它们不是被动的。它仅用于直接子操作的转义图案填充-应避免从模板或计算属性中访问$refs。
$REF仅在渲染组件后填充,并且它们不是被动的。它仅用于直接子操作的转义图案填充-应避免从模板或计算属性中访问$refs。
computed: {
buttonOptions() {
if (!this.isMounted || !this.$refs.route) {
return {};
}
return {
disabled: this.$refs.route.buttonOptions.disabled || this.$refs.route.buttonOptions.loading,
loading: this.$refs.route.buttonOptions.loading,
text: this.$refs.route.buttonOptions.text,
hidden: this.$refs.route.buttonOptions.hidden,
};
}
},
methods:{
async handleActiveStep(activeStep) {
this.isMounted = false;
await this.$router.push({name: activeStep});
this.isMounted = true;
},
}