gpt4 book ai didi

vuex - 带有 vuex-persist 的 Nuxt.js - 页面刷新时 asyncData 中的持久状态不可用

转载 作者:行者123 更新时间:2023-12-04 12:42:23 28 4
gpt4 key购买 nike

第一次刷新页面时, asyncData 函数无法获取持久状态。当我关注另一个 NuxtLink 并返回此页面时,虽然状态没有同时发生变化,但数据在那里。这意味着在第一次加载/刷新时,持久状态在服务器端不可用。 LocalStorage 是我选择保留相关状态项的地方。

使用 asyncData 的页面组件:

  asyncData({ app, params, store }) {
//its not available upon first refresh, but is after following a random nuxtlink and going back
const cartProducts = store.getters.getCartProducts
},

store/index.js 很简单。不幸的是,第一页刷新时 asyncData 中的状态完全为空。
  getCartProducts(state) {
return state.cart.products
},

vuex-persist.js 按照 Github 自述文件中的建议使用“客户端”模式正确导入
import VuexPersistence from 'vuex-persist'
/** https://github.com/championswimmer/vuex-persist#tips-for-nuxt */

export default ({ store }) => {
window.onNuxtReady(() => {
new VuexPersistence({
key: 'cartStorage'
/* your options */
}).plugin(store)
})
}

如何确保本地存储中的相关存储条款被持久化 之前 asyncData 被调用?

最佳答案

你不能这样做。不可能。没有localstorage在服务器上。和 asyncData在第一次加载/刷新时在服务器上执行。所以无法从 asyncData 中获取数据来自 localstorage甚至理论上在服务器上。

关于vuex - 带有 vuex-persist 的 Nuxt.js - 页面刷新时 asyncData 中的持久状态不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57031005/

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