6***@qq.com
6***@qq.com
  • 发布:2019-06-13 18:02
  • 更新:2019-06-13 18:02
  • 阅读:3956

【报Bug】uni-app 遍历对象 自定义 :key 时,微信小程序编译有问题

分类:uni-app

遍历对象 自定义 :key 时,微信小程序编译有问题
代码:

<view class="cart-info" :class="{ show: show_cart, hide: hide_cart }">  
                <view class="item" v-for="(product,key) in cart" :key="product.id">  
                    <view class="left">  
                        <view class="title">{{ product.name }}</view>  
                        <view class="spec">{{ product.spec }} ( {{ product.unit }} )</view>  
                    </view>  
                    <view class="center">  
                        <text>¥</text>  
                        {{ product.price }}  
                    </view>  
                    <view class="right ">  
                        <view class="del" @click="del(product)"  >-</view>  
                        <view class="text" >{{ product.num }} :{{product.id}}</view>  
                        <view class="add" @click="add(product)" >+</view>  
                    </view>  
                </view>  
            </view>

此时的 cart 是个对象【对象的key不连续】,事件传递时希望把 product 传递过去
然而查看了微信小程序的编译结果:

 <view data-event-opts="{{[['tap',[['del',['$0'],[[['cart','id',product.id]]]]]]]}}" class="del" bindtap="__e">-</view>

不是我预期的值, 现在找到的临时解决方案是这样:

<view class="right ">  
                        <view class="del" @click="del(product)"  >-</view>  
                        <view class="text" >{{ product.num }} :{{product.id}}</view>  
                        <view class="add" @click="add(cart[key])" >+</view>  
                    </view>

编译后的结果:

<view data-event-opts="{{[['tap',[['del',['$0'],['cart.'+key+'']]]]]}}" class="del" bindtap="__e">-</view>

现在这样才能达到我预期的效果

2019-06-13 18:02 负责人:无 分享
已邀请:

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