理解

例如这个复选框是用switch做的,当switch状态改变的时候,我需要把对应的vuex里的数据的选中状态也改变,因为购物车的数据必定是一个数组,所以我想要修改里边某一个元素的一个变量的值的时候,我需要得到我点的那个的索引值 

但是由于这个switch组件它

        <switch type="checkbox" checked="true" @change="switchChange(index)" />

这个change事件里就带一个event,如果这样传index的话

在方法区

        switchChange(event,index){},

由于是按照位置来传递参数的,index就会顶替掉event,那么就不能通过 event.detail.value 得到当前复选框的状态,所以这样传索引值的不可行的

正确的方法应该是

<template v-for="(item,index) in carData">
	<view class="carItem flex fl-a-center fl-j-b margin-bottom20 padding20">
	    <switch 
          type="checkbox"
          :checked="item.isChecked"         
          @change="event=>switchChange(event,index)" /> //这样传递参数
	    <image :src="item.mainImage[0]" class="image" ></image>
	    <div class="info">
			<div class="te-large">{{item.title}}</div>
			<div class="te-i-color te-small">{{item.subTitle}}</div>
			<div class="price">¥{{item.presentPrice}}</div>
	    </div>
	    <spinner :count="item.buyCount" @abc="event=>getNum(event,index)"></spinner>
	</view>
</template>

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐