Javascript 过渡';s钩子一旦被销毁并回调,就会产生问题
我有一个父组件和子组件,在子组件中我有一个定义如下的Javascript 过渡';s钩子一旦被销毁并回调,就会产生问题,javascript,vue.js,vuejs2,vue-component,Javascript,Vue.js,Vuejs2,Vue Component,我有一个父组件和子组件,在子组件中我有一个定义如下的: <template lang="pug"> div transition(name="fade-transition" mode="out-in" v-on:after-enter="fnAfterEnter") h1(v-if"someCondition") lorem ipsum </template> <script> export default { meth
:
<template lang="pug">
div
transition(name="fade-transition" mode="out-in" v-on:after-enter="fnAfterEnter")
h1(v-if"someCondition") lorem ipsum
</template>
<script>
export default {
methods: {
fnAfterEnter () {
do something here...
}
}
}
</script>
div
转换(name=“fade transition”mode=“out in”v-on:after enter=“fAfterenter”)
h1(v-if“someCondition”)lorem ipsum
导出默认值{
方法:{
fnfenter(){
在这里做点什么。。。
}
}
}
问题是,在父组件中,我有一些函数将使用简单的v-if
条件挂载和销毁子组件。第一次挂载子组件时一切正常,但一旦销毁并重新挂载后,所有挂钩(不仅仅是v-on:after-enter
)都不会触发方法fafter-enter
提前感谢:)我发现问题是:子组件的转换没有完成,我正在父组件中运行一些函数,使子组件的转换项条件
为true
而不使用$nextTick
,但现在我喜欢下面的代码,问题得到了解决
<script>
export default {
methods: {
someFnInParent () {
this.$nextTick(() => {
this.$refs.childComp.someCondition = true
})
}
}
}
</script>
导出默认值{
方法:{
一些不重要的(){
这个.$nextTick(()=>{
此.$refs.childComp.someCondition=true
})
}
}
}
所以,
this.$nextTick(()=>{})
帮了我的忙:)你能详细说明一下预期的行为和你实际看到的行为吗?您提供的描述很难理解。@B.Fleming我自己解决问题,发布了解决方案,请查看。