link98
link98
  • 发布:2025-09-14 02:17
  • 更新:2025-09-22 14:49
  • 阅读:117

插槽<slot>如果写上v-slot,会导致插槽<slot>内的组件sticky失效

分类:uni-app x

插槽<slot>如果写上v-slot,会导致插槽<slot>内的组件sticky失效。

这个组件是通用的,其他页面sticky没有问题,就这个页面sticky失效了。找了几个小时不同,最后把v-slot删了sticky就又有效果了。

应该是 uniapp 的 overflow 默认为 hidden 导致的,而 sticky 的父级设置为 overflow: hidden 会导致 sticky失效。

写上v-slot,会在组件外套一层<view>,这个 view 的overflow:hidden

没有写v-slot的效果

子组件:
<template>
<Layout v-slot="slotProps">
(sticky值无效)
</Layout>
</template>

父组件:
<template>
<view class="layout">
<slot :currentItem="currentItem"></slot>
</view>
</template>

怎么才能把全局默认overflow:hidden修改呢

2025-09-14 02:17 负责人:无 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

感谢反馈,这个是已知问题,下个alpha版本会修复,

临时解决方案,替换 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-compiler/dist/template/codegen.js 为附件文件

  • link98 (作者)

    好,谢谢

    2025-09-14 19:21

DCloud_UNI_JBB

DCloud_UNI_JBB

4.81.2025091909-alpha 版本的HX已修复此问题,可升级到此版本

要回复问题请先登录注册