照相
照相
  • 发布:2022-06-17 12:55
  • 更新:2023-03-08 16:00
  • 阅读:1109

在微信小程序中,如果在插入的slot中使用到了页面data中的变量,子组件for循环内的slot只能渲染一行。

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.3 (21E230)

HBuilderX类型: 正式

HBuilderX版本号: 3.4.15

第三方开发者工具版本号: 1.06.2206090 Stable

基础库版本号: 2.24.5

项目创建方式: HBuilderX

示例代码:

list组件代码:

<template>  
    <view>  
        <view v-for="(item,index) in list" :key="index">  
            <slot name="cell" :item="item" :index="index" />  
        </view>  
    </view>  
</template>  

<script>  
    export default {  
        name:"list",  
        data() {  
            return {  
                list: [1,2,3,4,5,6,7,8,9,10]  
            };  
        }  
    }  
</script>  

<style>  

</style>

页面代码:

<template>  
    <view class="content">  
        <list>  
            <view class="item" slot="cell" slot-scope="{item,index}" >  
                item--{{index}}--{{title}}  
            </view>  
        </list>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        onLoad() {  

        },  
        methods: {  

        }  
    }  
</script>  

<style>  
    .item{  
        padding: 40rpx;  
        border-bottom: solid 1px #eeeeee;  
    }  
</style>  

操作步骤:

运行附件中的demo项目在浏览器和微信小程序开发者工具中,在浏览器中能正常渲染10条数据,在微信小程序中只能渲染第一条数据。

预期结果:

运行附件中的demo项目在浏览器和微信小程序开发者工具中,在浏览器中能正常渲染10条数据,在微信小程序中也应该要渲染10条数据。

实际结果:

运行附件中的demo项目在浏览器和微信小程序开发者工具中,在浏览器中能正常渲染10条数据,在微信小程序中只能渲染第一条数据。

bug描述:

在微信小程序中,如果在插入的slot中使用到了页面data中的变量,子组件for循环内的slot只能渲染一行。

2022-06-17 12:55 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

针对插槽渲染多个实例的方案后续统一会在 #3503 继续跟进

DCloud_UNI_GSQ

DCloud_UNI_GSQ

是的,目前如果使用到了data中的变量,就会自动启用新版作用域插槽编译模式。

新版作用域插槽编译模式使用的小程序原生插槽,而原生插槽在部分小程序(如微信)不支持多次渲染同一个。

后续会继续考虑优化方案。

要回复问题请先登录注册