Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript localstorage.getItem()在NUXT JS中不工作_Javascript_Vue.js_Nuxt.js_Vuex_Nuxtjs - Fatal编程技术网

Javascript localstorage.getItem()在NUXT JS中不工作

Javascript localstorage.getItem()在NUXT JS中不工作,javascript,vue.js,nuxt.js,vuex,nuxtjs,Javascript,Vue.js,Nuxt.js,Vuex,Nuxtjs,我正在尝试用nuxt js开发一个购物车。我已成功将购物车数据存储在本地存储器中,但无法检索数据。 注意:我不想使用vuex persistedstate。我发现这有很多小问题 首先,根据您提交的saveInLocalStorage的事实判断,您似乎已经将addToCart和saveInLocalStorage放在了一起 突变只能用于设置单个Vuex变量的状态 它们应该是纯的,这意味着它们不应该有副作用 在使用dispatch运行saveInLocalStorage操作之前,您需要为saveI

我正在尝试用nuxt js开发一个购物车。我已成功将购物车数据存储在本地存储器中,但无法检索数据。


注意:我不想使用vuex persistedstate。

我发现这有很多小问题

首先,根据您提交的
saveInLocalStorage
的事实判断,您似乎已经将
addToCart
saveInLocalStorage
放在了一起

突变只能用于设置单个Vuex变量的状态

它们应该是纯的,这意味着它们不应该有副作用

在使用
dispatch
运行
saveInLocalStorage
操作之前,您需要为
saveInLocalStorage
使用操作,并对
addToCart
执行操作

其次,不清楚您实际上在哪里运行这个从本地存储获取的功能。您是否在Vuex商店的顶级运行它

如果是这样,为了解决它不更新Vuex存储的实际问题,您需要让函数负责获取
storedCart
的值,并使用它将
cart
设置为变异,以确保Vuex存储实际更新


最后,这里不需要使用三元数。只需将Vuex
cart
对象设置为空数组。

确切的问题是什么?一个错误,没有返回任何数据,响应与预期的不同?请查看我检查的第一个文件,看看本地存储中是否有可用的数据,然后显示该数据。如果不是,则显示一个空数组。但它总是返回空数组。请阅读我的答案。这里有很多问题。要使Vuex具有反应性,您需要在提交中更新值。其次,提交应该总是没有副作用,只更新单个存储项。您可以链接提交,或者使用actionsCan从提交中运行其他方法。您可以告诉我如何创建一个函数来更新cart并将其设置为storeCartWell,这只是通过一个变异完成的。你的意思是从本地存储器加载并设置它吗?同样,这也一定是一种变异。任何更新Vuex变量的操作都必须是变异。任何有副作用的东西都需要采取行动。动作可以使用突变。阅读以下内容:)要了解操作,您应该创建一个保存到本地存储的操作,然后提交一个变种以推送到购物车。然后,您应该创建一个从本地存储获取的变异,并设置存储数据,假设我有一个变异getCartFromLocal(),其中我从本地存储获取数据。我应该在哪里进行变异?你可以在任何地方调用它,真的。我个人会在布局/页面组件的
created()
lifecycle钩子中调用它,这是第一个最顶级的组件。如果它依赖于先安装的组件,请使用
mounted()