redux-persist - 如何将嵌套状态字段列入白名单?
redux-persist - how to whitelist nested state field?
我想在存储中保存一个完整的 reducer,并且只保存来自其他 reducer 的一个字段。我怎样才能做到这一点?我发现例如this gh issue,但所有尝试(来自 gh link 和其他来源)都失败了。
const persistConfig = {
key: "root",
storage,
whitelist: ["first"],
transforms: [createWhitelistFilter("second", ["counter"])]
};
它适用于 first
reducer,第二个没有任何反应,当我只想存储来自 reducer 的 counter
字段时。
有什么想法吗?
了解这个问题后,我编写了一个自定义转换器来保存第二个减速器的计数器字段。并避免保存整个对象。
我使用自定义转换器来实现功能。您可以通过 here
阅读更多相关信息
解决方案
const whiteList = createTransform(
(inboundState, key) => {
if (key === "second") {
// This is saving to storage
// Save only the counter field for second reducer
return inboundState.counter;
}
return inboundState;
},
(outBoundState, key) => {
if (key === "second") {
// Receiving data from storage
// add the saved counter field in reducer object
return {
name: "",
counter: outBoundState
};
}
return outBoundState;
}
);
const persistConfig = {
key: "root",
storage,
transforms: [whiteList]
};
我们只允许将计数器字段保存在存储中,并且在接收时将其添加到对象值中。
这是工作 sandbox。
我想在存储中保存一个完整的 reducer,并且只保存来自其他 reducer 的一个字段。我怎样才能做到这一点?我发现例如this gh issue,但所有尝试(来自 gh link 和其他来源)都失败了。
const persistConfig = {
key: "root",
storage,
whitelist: ["first"],
transforms: [createWhitelistFilter("second", ["counter"])]
};
它适用于 first
reducer,第二个没有任何反应,当我只想存储来自 reducer 的 counter
字段时。
有什么想法吗?
了解这个问题后,我编写了一个自定义转换器来保存第二个减速器的计数器字段。并避免保存整个对象。
我使用自定义转换器来实现功能。您可以通过 here
阅读更多相关信息解决方案
const whiteList = createTransform(
(inboundState, key) => {
if (key === "second") {
// This is saving to storage
// Save only the counter field for second reducer
return inboundState.counter;
}
return inboundState;
},
(outBoundState, key) => {
if (key === "second") {
// Receiving data from storage
// add the saved counter field in reducer object
return {
name: "",
counter: outBoundState
};
}
return outBoundState;
}
);
const persistConfig = {
key: "root",
storage,
transforms: [whiteList]
};
我们只允许将计数器字段保存在存储中,并且在接收时将其添加到对象值中。
这是工作 sandbox。