javascript - 带路径的 vue-persistedstate 减速器
问题描述
我使用带有特定模块的 vue-persistedstate 仅设置持久化,并且使用path
属性运行良好。
但是当我尝试将它与 混合时reducer
,设置中的模块path
不再工作,并且减速器设置所有模块都保持不变。我应该如何使用减速器?
const persistedstate = new createPersistedState({
key: "newsportal-vuex",
storage: window.localStorage,
paths: ["auth", "venues", "play", "playWS", "purchaseSettings"], // only the persisted ones
reducer(val) {
if (!localStorage.getItem("newsportal_isuseracceptcookie")) {
// DONT USE PERSISTEDSTATE IF USER DECLINE COOKIES
return {};
}
return val; // <-this return ALL MODULES. i want to set only modules in path
}
});
提前致谢
解决方案
刚刚意识到我需要重建对象
reducer(val, paths) {
if (!localStorage.getItem("newsportal_isuseracceptcookie")) {
// DONT USE PERSISTEDSTATE IF USER DECLINE COOKIES
return {};
}
// make persisted state as in paths
let reducer = {};
Object.entries(val).forEach(entry => {
const [key, value] = entry;
if (paths.includes(key)) {
reducer[key] = value;
}
});
return reducer;
}
推荐阅读
- javascript - Nodejs puppeteer 在节点 js 控制台中输出多个并行进度线
- qt - Qt - 如何将 QByteArray 发送到 QserialPort
- amazon-web-services - Does GCP have an Iac tool just like CloudFormation of AWS?
- arduino - 射频识别
不适用于新的 ARDUINO UNO WiFi REV2 - android - Create a RecyclerView with multiple view from layouts
- pyspark - Dask 等效于 pyspark 超前和滞后功能
- python - PyTesseract 处理单个图像的速度非常慢
- spring-boot - Spring Boot 通过 PUT 上传文件
- python - MongoDB Atlas 身份验证在 Python 上失败
- python - 如何在文件的每一行中找到最大的数字