t***@sina.com
t***@sina.com
  • 发布:2022-12-09 10:16
  • 更新:2024-12-03 09:49
  • 阅读:526

【报Bug】多级插槽 添加循环后 第二个之后的业务数据不显示(仅微信小程序)

分类:uni-app

产品分类: 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 (解决了多级插槽的问题, 但是循环插槽有出现新问题 。 烦请解决下。 谢谢)

2022-12-09 10:16 负责人:无 分享
已邀请:
t***@sina.com

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}}"/>

还请官方验证下。

DCloud_UNI_WZF

DCloud_UNI_WZF

问题复现,感谢反馈,已加分

  • r***@163.com

    同遇到该 问题,什么时候能修复呢

    2022-12-14 12:46

  • t***@sina.com (作者)

    您好, 我这边等了半年了。 这个问题还是没有解决。

    2023-06-06 08:45

1***@qq.com

1***@qq.com

解决了吗

要回复问题请先登录注册