当前位置: 首页 > article >正文

uniapp中父组件数组更新后与页面渲染数组不一致实战记录

    简单描述一下业务场景方便理解:
    商品设置功能,支持添加多组商品(点击添加按钮进行增加).可以对任意商品进行删除(点击减少按钮对选中的商品设置进行删除).
在这里插入图片描述
问题:
    正常添加操作后,对已添加的任意商品删除后,控制台打印数组正常.但是与页面显示不一致.已上图为例,选中尾号2885进行删除,控制台商品数组显示正常,存在尾号6719和尾号7040的商品.但是页面显示还是尾号2885和尾号6719商品信息.尾号7040的商品不显示.
    多次测试发现不论选中哪个商品设置,控制台打印的数组与预期删除的一致,但是页面始终是最后一个尾号7040的商品不显示.
这里尝试过很多办法,最终出现问题是在v-for循环中的key,修改之前的父组件:

<goods_settting v-for="(goodsItem,index) in goodsList" :key="index"
</goods_settting >

    造成上述问题的原因是在删除数组中指定元素后对数组进行重新赋值,key存在重复的情况导致渲染异常.
修改后:

<goods_settting v-for="(goodsItem,index) in goodsList" :key="goodsItem.goodsId"
</goods_settting >

    这里的goodsItem.goodsId必须保证是唯一的,入页面所示显示的是时间戳.


http://www.kler.cn/a/416778.html

相关文章:

  • 贪心算法理论
  • BiGRU:双向门控循环单元在序列处理中的深度探索
  • 迭代器模式 (Iterator Pattern)
  • netconf 代码架构
  • Jmeter进阶篇(29)AI+性能测试领域场景落地
  • AMD的AI芯片Instinct系列介绍
  • 力扣98:验证二叉搜索树
  • [CTF/网络安全] 攻防世界 upload1 解题详析
  • js 中 file 文件 应用
  • 应急响应靶机——Windows挖矿事件
  • Istio笔记01--快速体验Istio
  • 使用 Spring AI + Elasticsearch 让 RAG 变得简单
  • jmeter基础(超详细总结)
  • 第五讲:运算符与表达式:算术、关系、逻辑、赋值等运算符及其优先级
  • 超级灵感:前端页面功能统一管理方案
  • Flutter 权限申请
  • 数据结构——有序二叉树的构建遍历查找
  • 【iOS】多线程基础
  • 基于R语言森林生态系统结构、功能与稳定性分析与可视化
  • 搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档
  • 面试小札:ThreadLocal底层实现原理和具体应用场景
  • 浅谈JAVA中的Random随机数
  • Linux CentOS:深入探讨端口管理与防火墙配置技巧20241126
  • 蓝队之云技术
  • UE5 打包环境、C++环境安装说明
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(6))