目前在做一个购物车功能
手动填写购买数量,要求填写数字大于库存时候,输入框内容为库存数据
数据实际变了,但前端Input展示的数据没有及时变化
解决方案 uniapp vue3 用的是setup
前端代码
<view class="num_input_view"><input ref="numInput" class="num_input" type="number" v-model="item.num" @input="inputCart(index)" /></view>
JS代码
<script setup>
function inputCart(index){
let id = cart_list.value[index].id
let num = parseInt(cart_list.value[index].num)
let stock = parseInt(cart_list.value[index].total_stock)
if(num >= stock){
setTimeout(() => { cart_list.value[index].num = stock }, 0)
uni.showToast({
title: "数量大于库存",
icon: 'error',
duration: 2000
});
}
}
使用了setTimeout(() => { cart_list.value[index].num = stock }, 0)