vue element $forceUpdate()强制重新渲染后校验失效

forceUpdate一般使用在编辑表单时输入框无法输入值的时候用来强制刷新数据的,但用forceUpdate后可能会导致表单rules校验失效,那么可以$set来代替forceUpdate,如图所示:

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果 `$forceUpdate()` 没有生效,可能是因为组件中的计算属性 `countdown` 没有变化,这会导致组件不会重新渲染。可以尝试将 `countdown` 定义为响应式数据,这样当 `countdown` 变化时,组件会自动重新渲染。 修改代码如下: ```javascript export default { name: 'WebIndex', data() { return { endTime: '2023-07-04 00:00:00', // 倒计时结束时间 countdown: {} // 定义响应式数据 }; }, methods: { updateTime() { let now = new Date().getTime(); // 获取当前时间戳 let end = new Date(this.endTime).getTime(); // 获取倒计时结束时间戳 let diff = end - now; // 计算时间差 // 计算天、时、分、秒 let days = Math.floor(diff / (1000 * 60 * 60 * 24)); let hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); let minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); let seconds = Math.floor((diff % (1000 * 60)) / 1000); // 更新响应式数据 this.countdown = { days: days, hours: hours, minutes: minutes, seconds: seconds }; } }, created() { this.updateTime(); // 初始化倒计时 setInterval(() => { this.updateTime(); // 更新倒计时 }, 1000); } }; ``` 在 `data()` 中定义 `countdown` 为响应式数据,并将计算属性 `countdown()` 中的代码移动到 `updateTime()` 方法中。`updateTime()` 方法会更新 `countdown` 数据,从而触发组件重新渲染。在 `created()` 钩子函数中,调用 `updateTime()` 方法初始化倒计时,并设置定时器每秒钟更新一次倒计时。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值