2023-08-28 关于uview组件u-number-box的一些错误使用示范 ==》尽量不要给change事件传递参数

发布时间 2023-08-28 10:59:59作者: 哎呦你可棒棒了

此处记录我对u-number-box的错误使用:

<u-number-box v-model="item.num" @change="onChangeNum(item,index)"></u-number-box>

业务:修改购物车数量,遍历数据data给u-number-box赋值,u-number-box的change事件接受一个函数onChangeNum并进行逻辑处理。

刚开始我是给onChangeNum直接传对应值以及商品的下标,然后拿到u-number-box改变后的值去修改购物车数量,但是我发现拿到的数据不对,

比如我打印选中修改的商品数据data[index]对象中的num为2,但实际上data[index].num为1,也就是说原本是1,我改成了2,但实际上还是1。

这个我不明白为何会如此,是深浅拷贝导致的吗?

后来我不给onChangeNum传值,即:

<u-number-box v-model="item.num" :name="index" @change="onChangeNum"></u-number-box>

我便拿到了u-number-box事件change传递给onChangeNum的两个值:value和name。

然后我拿这两个值修改购物车数量就没问题了,value就是value,不要再给商品数据data来赋值了,直接拿value。