首页 > 其他 > 详细

vue报错: <router-view> can no longer be used directly inside <transition> or <keep-alive>

时间:2021-06-10 12:07:20      阅读:347      评论:0      收藏:0      [点我收藏+]

最近在学习vue3,在搭建项目的时候,使用 keep-alive 的包裹 router-view 会有警告信息

<router-view> can no longer be used directly inside <transition> or <keep-alive>

 

代码如下:

<transition
  :name="!noTransition ? ‘fade-transform‘ : ‘‘"
  :mode="!noTransition ? ‘out-in‘ : ‘‘"
>
  <keep-alive :include="cachedViews">
    <router-view :key="key" />
  </keep-alive>
</transition>

 

提示以下警告

[Vue Router warn]: <router-view> can no longer be used directly inside <transition> or <keep-alive>.
Use slot props instead:

<router-view v-slot="{ Component }">
  <transition>
    <component :is="Component" />
  </transition>
</router-view>

 

从警告信息可以看出是路由包裹出现了问题,现做如下调整

<router-view :key="key" v-slot="{ Component }">
  <transition
    :name="!noTransition ? ‘fade-transform‘ : ‘‘"
    :mode="!noTransition ? ‘out-in‘ : ‘‘"
  >
    <keep-alive :include="cachedViews">
      <component :is="Component"></component>
    </keep-alive>
  </transition>
</router-view>

  

 

vue报错: <router-view> can no longer be used directly inside <transition> or <keep-alive>

原文:https://www.cnblogs.com/cap-rq/p/14869714.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!