uni-app 支付宝小程序不支持 $scopedSlots $slots
uni-app 支付宝小程序不支持 $scopedSlots $slots
示例代码:
<test>
<view></view>
<template #test>
<view>
哈啊哈哈
</view>
</template>
</test>
<template>
<view class="test-view">
<slot></slot>
<slot name="test"></slot>
</view>
</template>
操作步骤:
如上代码
预期结果:
应该和其他小程序保持一致
实际结果:
获取不到
bug描述:
支付宝小程序不支持$scopedSlots $slots
在h5和微信小程序中都没有问题

更多关于uni-app 支付宝小程序不支持 $scopedSlots $slots的实战教程也可以访问 https://www.itying.com/category-93-b0.html
补充:
这是uview的组件库示例项目,其中有很多也使用了$slots,但是可以看到报了很多错,并且样式错乱。而错误正是$slots引起的。

更多关于uni-app 支付宝小程序不支持 $scopedSlots $slots的实战教程也可以访问 https://www.itying.com/category-93-b0.html
如果不支持 ,请在文档里声明,谢谢!!!
官方可以给个反馈吗
稍等,会安排确认问题
回复 DCloud_UNI_LXH: 您好,请问这个问题确认了吗?
我也遇见这个问题,请问有解决方案了么
有没有暂时的解决方案啊,回答一下啊
临时解决方案:(解决后传递的插槽值依然不可用,仅把 $slots, $scopedSlots 赋值为空对象,仅防止控制台报错)
// #ifdef MP-ALIPAY
// 解决支付宝小程序插槽不兼容问题
Vue.mixin({
beforeCreate () {
if (!this.$slots) Object.defineProperty(this, ‘$slots’, { value: {}})
if (!this.$scopedSlots) Object.defineProperty(this, ‘$scopedSlots’, { value: {}})
}
})
// #endif
支付宝小程序平台本身对Vue的$scopedSlots和$slots支持确实有限,这是由支付宝小程序底层实现机制决定的。在uni-app中,虽然框架已尽力抹平多端差异,但部分平台特性仍无法完全统一。
目前支付宝小程序不支持通过$scopedSlots和$slots访问插槽内容。作为替代方案,建议使用条件编译来处理这种平台差异:
<!-- #ifdef MP-ALIPAY -->
<!-- 支付宝小程序的替代实现 -->
<!-- #endif -->
<!-- #ifndef MP-ALIPAY -->
<!-- 其他平台的原始实现 -->
<!-- #endif -->


