所以我有一个凭据对象,其中包含密码和用户名
payload: Object
credentials: Object
password: ""
username: ""
并且我想在reducer配置中将密码列入黑名单,例如
const authPersistConfig = {
key: 'AuthReducer',
storage: storage,
blacklist: ['credentials.password']
};
如果我使用此代码,则两个凭据状态最终都会被列入黑名单。我要保留用户名而不是密码。
redux-persist可能仅保留顶级状态,或者可能是语法错误,或者完全是其他原因-任何想法?
非常感谢
答案 0 :(得分:0)
您可以按照redux-persist-transform-filter
issue #277 - Whitelist reducer subproperty only?
redux-persist
的NPM软件包
答案 1 :(得分:0)
或者,如果您不希望完全删除键,而只是清除任何嵌套状态对象中的任何数据,则以下示例使用“ redux-persist” 中的 createTransform / p>
答案 2 :(得分:0)
您可以进行嵌套持久配置。
const rootPersistConfig: any = { 键:“根”, 超时:500, 存储:异步存储, 黑名单:[“凭据”], };
const credentialsPersistConfig: any = { 键:“凭据”, 存储:异步存储, 白名单:[“密码”], };
const rootReducer = combineReducers({ 凭据:persistReducer(credentialsPersistConfig, CredentialReducer), });
const persistedReducer = persistReducer(rootPersistConfig, rootReducer);
答案 3 :(得分:0)
您可以使用 pick 或 omit 将特定一级商店条目的任何嵌套值列入白名单或黑名单。 举个例子:
let blacklistTransform = createTransform((inboundState, key) => {
if (key === 'credentials') {
return omit(inboundState, ['password']);
} else {
return inboundState;
}
});
const persistConfig = {
key: 'root',
storage: AsyncStorage,
blacklist: ['credentials'], // Only roster entry
transforms: [blacklistTransform],
};