详见附件。
- 发布:2022-12-09 10:16
- 更新:2024-12-03 09:49
- 阅读:526
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows10
HBuilderX类型: 正式
HBuilderX版本号: 3.6.12
第三方开发者工具版本号: 1.06.2209190 win32-x64
基础库版本号: 2.28.0
项目创建方式: HBuilderX
示例代码:
操作步骤:
导入项目 编译到微信小程序。
导入项目 编译到微信小程序。
预期结果:
显示业务自定义内容。 循环正常。
显示业务自定义内容。 循环正常。
实际结果:
并无显示。
并无显示。
bug描述:
首先我有一个组件 A, 支持插槽动态插入内容。
<template>
<view>ComponentA组件公共内容区</view><view> ^ </view><view> ^ </view>
<view>ComponentA插槽内容: </view>
<view v-for="i in [1, 2]" style="border: 1px solid; height: 200px;">
<slot name="componentA" :paramByA="{ key: '我是插槽A的参数' }"/>
</view>
</template>
然后把又加了一个组件B, 对A进行了包装, 也支持插槽插入内容。
<template>
<ComponentA>
<template #componentA="{paramByA}">
testB覆写了testA, 拿到了参数: {{ paramByA }}
<view>ComponentB插槽内容: </view>
<view style="border: 1px solid; height: 60px; margin: 10px;">
<slot name="componentB" :paramByB="{ key: '我是插槽B的参数' }"/>
</view>
</template>
</ComponentA>
</template>
最后业务方使用:
<ComponentB>
<template #componentB="{paramByB}"><view>我是业务, 把我显示就成功了!!!!!拿到参数: {{paramByB}}</view></template>
</ComponentB>
结果: 业务页面的自定义内容不会正常显示, 默认内容页不会显示而是空白。 循环体,只有第一个正常显示, 第二个则显示空白!
但是! 如果不传入参数, 就是正常显示。 APP H5都是正常的。
代码附件已上传。
https://ask.dcloud.net.cn/question/158765 (解决了多级插槽的问题, 但是循环插槽有出现新问题 。 烦请解决下。 谢谢)
t***@sina.com (作者)
通过查看 微信现场小程序元源码, 改为如下目前测试正常。
ComponentB.js 文件:
({paramByA}, s0, i0) => {
return {
a: common_vendor.t(paramByA),
b: i0,
c: s0,
};
},
改为:
return {
a: common_vendor.t(paramByA),
b: i0,
c: s0,
d: "" + i0,
e: common_vendor.r("componentB", {
paramByB: {
key: "\u6211\u662F\u63D2\u69FDB\u7684\u53C2\u6570"
}
}, i0)
};
ComponentB.wxml slot改为:
<slot name="{{v0.d}}"/>
还请官方验证下。