解决avue-input-tree组件重置数据不回显/重置失败

解决方式:使用JSON.parse(JSON.stringify(value)) 进行赋值,且给 dic 也重新赋值。

目录

问题现象

问题排查

解决方案


最近在使用avue-input-tree组件展示物料数据时,遇到了一个有趣的问题:页面重置操作无法将数据恢复到初始值,而是在初始值基础上追加了修改后的值。经过一番排查,终于找到了问题的根源和解决方法。

问题现象

树结构重置失效

假如:默认选中【888,999】,修改为【test23344,2】,但是点击【重置】后,就成了追加,如图。

问题排查

经过仔细测试和代码排查,我们发现问题出在avue-input-tree组件的dicts属性上。虽然我们在初始化时设置了初始值,但可能在重置操作后,重新渲染组件时,没有正确地对dicts进行重新赋值,导致组件无法感知到数据的变化,从而在重置时出现了错误的追加行为。

解决方案

重置时给avue-input-treedic也重新赋值

代码如下:

javascript 复制代码
methods: {
  handleOnTemplate(tempItem, templateList) {
    console.log(tempItem, '模板tempItem-----');
    if (templateList?.length) {
      this.modelCategory = [];
      this.modelCategory = tempItem?.modelCategorys?.value ? JSON.parse(JSON.stringify(tempItem?.modelCategorys?.value)) : [];
      this.queryParams.modelCategorys = tempItem?.modelCategorys?.value || [];
      this.modelCategorysList = tempItem?.modelCategorys?.options? JSON.parse(JSON.stringify(tempItem?.modelCategorys?.options)) : [];
    }
  },
}

html部分:

html 复制代码
<template slot="form-modelCategorys">
  <avue-input-tree 
    :props="{ label: 'categoryName', value: 'categorysCode' }"
    :dic="modelCategoryList" 
    multiple 
    v-model="modelCategory" 
    placeholder="请选择 物料分类"
  ></avue-input-tree>
</template>
相关推荐
Highcharts.js12 分钟前
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
开发语言·前端·javascript·信息可视化·highcharts·图表开发
LaughingZhu7 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫7 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
小鹏linux8 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水9 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger9 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)9 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态9 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态9 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart9 小时前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter