Vuex getter 不会更新

Vuex getter will not update

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

商店状态:

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

吸气剂:

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 对象时,它只会被设置一次。

我的到来getter在devtools中显示如下:

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

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

我的 getter 设置有问题还是这里有其他问题?

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

解决方案就在这个答案中:

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

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

moment(this.currentDate)
在这种情况下,

this.currentDate 是一个 moment.js 实例。