因此,我有一个带有复选框的项目列表,我根据复选框的值隐藏并显示它们。例如,一开始,所有项目都被选中,这意味着它们的可见性设置为true。如果我取消选中,它会设置为false并被隐藏。该列表处于模态,充当“过滤此列表”功能。
但是,我要尝试将值设置为localstorage,然后在用户刷新时保留他们已应用的过滤器。
不幸的是,我无法在这里发送有效的提琴,但是我可以应用一些部分代码。 我会尽力解释一下;
volumeFilter(symbol, visible) {
const self = this;
this.marketFiltersStorage[symbol] = this.marketFiltersStorage[symbol] || {};
lodash.forEach(self.volumeData, (obj, objKey) => {
if (symbol === obj.name && self.volumeData[objKey].visible === true) {
self.volumeData[objKey].visible = false;
this.marketFiltersStorage[symbol].visible = self.volumeData[objKey].visible;
} else if (symbol === obj.name && visible === false && self.volumeData[objKey].visible === false) {
self.volumeData[objKey].visible = true;
this.marketFiltersStorage[symbol].visible = self.volumeData[objKey].visible;
}
localStorage.setItem('marketFiltersStorage', JSON.stringify(this.marketFiltersStorage));
});
},
所以VolumeFilter
是我选中/取消选中复选框时触发的东西。 marketFilterStorage
是我创建的用于将值保存在本地存储中的对象。 volumeData
是包含所有项目的对象。
if (symbol === obj.name && self.volumeData[objKey].visible === true)
的逻辑是我将商品的可见性设置为true或false
我想做的是遍历每个项目,并针对每个条件,在本地存储中添加true / false,如下所示; this.marketFiltersStorage[symbol].visible = self.volumeData[objKey].visible;
这是可行的,但是当我刷新时,本地存储仍然存在,但是当我尝试选中或取消选中另一个复选框时,它将再次重写。
长话短说,我只想将visible
值添加到本地存储中,然后在页面重新加载时再次将其拉入。我还没有实施getItem
如果您有很多问题,我感到很抱歉。如果您有任何疑问,我将非常乐于尝试并更清楚地解释它。
非常感谢您预先提供的帮助