TING沫 2023-07-18 17:18 采纳率: 70.6%
浏览 51
已结题

el-select清空缓存重新渲染

问题:

element select二级联动在设置联动时, 改变前一个select1的value值,后一个select2的会调接口查询返回值,select1改变后拿到了select2的所有选项,但是select2的选项没有更新,使用过 this.$forceUpdate() 没啥作用,请问有什么可以清空缓存重新渲染的解决办法

举例:

第一步:select1改变后,拿到的select2的所有选项数据是data1
第二步:select1又一次改变值,拿到的select2的所有选项数据是data2:
此时控制台打印select2的所有选项已经变更了是data2,但是页面上渲染是data1的选项数据

  • 写回答

1条回答 默认 最新

  • Leodong. 2023-07-18 17:24
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    你可以在select1的值发生变化时,手动重置select2的选项值。在Vue.js中,你可以使用v-model指令和watch来实现这一功能。

    首先,在select1上使用v-model指令来绑定一个数据属性,例如:

    <el-select v-model="selectedOption1" @change="handleSelect1Change">
      <!-- select1的选项 -->
    </el-select>
    

    然后在Vue实例中定义这个数据属性和对应的方法:

    data() {
      return {
        selectedOption1: null, // select1的选中值
        options2: [], // select2的选项
        selectedOption2: null // select2的选中值
      }
    },
    methods: {
      handleSelect1Change() {
        // 选中值发生变化时,重置select2的选项
        this.selectedOption2 = null;
        this.options2 = [];
      }
    }
    

    这里,当select1的选中值发生变化时,我们手动将select2的选中值和选项数组重置为空。这样可以确保select2的选项在下次渲染时能够正确更新。

    如果你仍然遇到问题,可以尝试使用Vue提供的key属性,将select2的key绑定到选中的select1上,这样当select1的值发生变化时,select2就会被强制重新渲染。例如:

    <el-select v-model="selectedOption2" :key="selectedOption1">
      <!-- select2的选项 -->
    </el-select>
    

    这里将select2的key绑定到了selectedOption1上,这样当selectedOption1发生变化时,select2就会重新渲染。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!