gpt4 book ai didi

javascript - Vuex getter 不会更新

转载 作者:搜寻专家 更新时间:2023-10-30 22:48:22 25 4
gpt4 key购买 nike

我正在使用日期选择器来设置一个 moment.js 日期,该日期正在我的 Vuex 商店中设置:

存储状态:

const state = {
arrival: '',
departure: ''
}

setter/getter :

const getters = {
arrival: state => state.arrival,
departure: state => state.departure,

prettyArrival: (state) => {
if (state.arrival instanceof moment) {
return state.arrival.format(state.prettyFormat);
}

return '';
}
}

我的 vuex 存储正在正确更新到达状态(这是一个 moment.js 对象),因为我可以清楚地看到显示更新和原始状态发生变化的开发工具。

但是 prettyArrival 没有正确更新。当到达从空字符串变为 moment.js 对象时,它只会被设置一次。

我的 arrival getter 在 devtools 中显示如下:

arrival:"2017-07-21T09:15:53.770Z"

当我记录它时,我得到了 moment.js 对象,尽管它似乎包含 reactiveGettersreactiveSetters 所以 react 似乎到位。

我设置 setter/getter 的方式有问题还是这里有其他问题?

欢迎提供任何提示,如果您需要更多信息,请告诉我。

最佳答案

解决方案在于这个答案:

Why does vue.js not update the dom with datepicker using moment.js

我认为情况并非如此,因为我仍然有一些输入正在正确更新。我是如何做到这一点的,这仍然是我需要解开的谜。

moment.js 实例不是响应式(Reactive)的,因此您可以通过将 moment.js 实例放入构造函数来修复它,并在每次设置时创建一个新实例,如下所示:

moment(this.currentDate)

this.currentDate 在这种情况下是一个 moment.js 实例。

关于javascript - Vuex getter 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45186320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com