gweii
gweii
  • 发布:2021-11-12 23:34
  • 更新:2021-11-28 14:47
  • 阅读:1037

【报Bug】在插槽内无法取到插槽参数值,总是为undefined

分类:uni-app

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

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: Catalina 10.15.5

HBuilderX类型: 正式

HBuilderX版本号: 3.2.12

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

基础库版本号: 2.20.2

项目创建方式: HBuilderX

操作步骤:

参考代码

预期结果:

在插槽内能正确取到插槽参数

实际结果:

插槽内取到的参数始终为undefined。scopedSlotsCompiler设置为legacy、auto或argumented结果都一样

bug描述:

组件代码如下:

<template>  
    <uni-swiper-dot :info="items" :current="currentAlt" mode="dot">  
        <swiper :current="current" :autoplay="autoplay" indicator-dots indicator-color="#FFFFFF"  
            indicator-active-color="#000000"  
            :style="{height: height + 'px'}"  
            @change="$emit("change", item)">  
            <swiper-item v-for="(item, index) in items" :key="index">  
                <slot :item="item" :index="index" />  
            </swiper-item>  
        </swiper>  
    </uni-swiper-dot>  
</template>  

<script>  
    export default {  
        props: {  
            items: {  
                type: Array,  
                default: []  
            },  
            height: {  
                type: Number,  
                default: 225  
            },  
            autoplay: {  
                type: Boolean,  
                default: false  
            }  
        },  
        data() {  
            return {  
                current: 0,  
                currentAlt: 0  
            }  
        },  
        methods: {  
        }  
    }  
</script>

调用组件代码如下:

<template>  
    <view>  
        <custom-swiper  
            :items="config.swipes" :height="style.swiperHeight" :autoplay="autoplay"  
            #default="{item, index}"  
        >  
            <image :id="'swiper-'+index" :src="item.images[0].url"  
                :mode="showLarge ? 'widthFix' : 'aspectFill'"  
            />  
        </custom-swiper>  
    </view>  
</template>

执行时报错:
[Vue warn]: Property or method "item" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.

found in

---> <NavSwiper> at pages/component/navSwiper.vue
pages/index.vue(env: macOS,mp,1.05.2111051; lib: 2.16.1)

调试发现插槽传参时就是undefined:

2021-11-12 23:34 负责人:无 分享
已邀请:
苏陌

苏陌

在父组件这样用插槽

    <template #default="{item,index}"></template>
  • gweii (作者)

    我的代码语法没问题的

    2021-11-13 14:58

  • 苏陌

    回复 gweii: 我知道

    2021-11-13 16:04

1***@qq.com

1***@qq.com

你这个解决了吗,我的也是这样

该问题目前已经被锁定, 无法添加新回复