You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vuetify:关闭v-dialog时如何刷新数据?

解决Vuetify对话框关闭时残留旧数据的问题
  • 核心原因:关闭对话框时未清空reservation、reservation_invoice、reservation_rooms的旧数据,导致无对应发票的条目打开时,显示上一次的残留内容。

  • 具体解决方案:

  1. 编写数据重置方法
    在Vue组件的methods中添加专门重置这三个数据对象的方法,将其恢复到初始空状态:
resetReservationData() {
  // 重置reservation到定义时的初始结构
  this.reservation = {
    cancellations: [],
    payment_term: [],
    departure_city: '',
    departure_date: '',
    payment_mode: '',
    payment_type: '',
    total: '',
    nr_room: '',
    trip: '',
    response_code: '',
  };
  // 重置reservation_invoice为初始空对象(根据你的实际结构调整)
  this.reservation_invoice = {};
  // 重置reservation_rooms为初始空数组
  this.reservation_rooms = [];
}
  1. 绑定对话框关闭事件触发重置
    在你的v-dialog标签上添加@close事件,调用上面的重置方法,确保对话框关闭时自动清空数据:
<v-dialog v-model="dialog" @close="resetReservationData">
  <!-- 对话框内的内容,比如发票展示区域、房间信息等 -->
</v-dialog>
  1. 可选:打开对话框前提前重置数据
    为了更稳妥,也可以在点击表格行、发起API请求之前先调用重置方法,确保获取新数据前状态是干净的:
openReservationDialog(reservationId) {
  // 先清空旧数据
  this.resetReservationData();
  // 调用API获取对应ID的预订数据
  fetch(`/api/reservations/${reservationId}`)
    .then(res => res.json())
    .then(data => {
      this.reservation = data.reservation;
      this.reservation_invoice = data.invoice || {};
      this.reservation_rooms = data.rooms || [];
      // 打开对话框
      this.dialog = true;
    });
}

通过以上操作,无论关闭对话框还是打开新的预订条目,数据都会被重置为初始状态,不会再出现旧数据残留的问题。

内容的提问来源于stack exchange,提问作者Bucur Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:05:20