1 回答
TA贡献1772条经验 获得超5个赞
我终于解决了这个问题,所以我将描述解决方案。
我创建了一个小示例:https ://codesandbox.io/s/wandering-paper-o952k?file=/src/App.vue
<template>
<h1>{{ currentTime.toString() }}</h1>
<button @click="currentTime = addMonths(1, currentTime)">
Add one month
</button>
</template>
function addMonths(numberOfMonths, currentTime) {
const x = currentTime.getDate();
currentTime.setMonth(currentTime.getMonth() + numberOfMonths);
console.log(`Function has been called with : ${currentTime}`);
if (currentTime.getDate() !== x) {
currentTime.setDate(0);
}
return currentTime;
}
Vue 无法检测到更改,因为我返回一个具有相同引用(与旧对象)的对象。因此,解决方案是创建一个新对象,以便检测到更改。
相反return currentTime;,做这样的事情return new Date(currentTime)会起作用。
如果我能帮忙的话我很高兴。我已经寻找解决方案很长时间了
添加回答
举报