redux,版本控制预加载状态?
[预加载状态](任意):初始状态。您可以选择指定 它可以从通用应用程序中的服务器获取状态,或者 还原以前序列化的用户会话 我可以使用PRELOEDSTATE参数成功初始化存储 然而,有时我需要改变国家的结构 举个例子,我最初有redux,版本控制预加载状态?,redux,Redux,[预加载状态](任意):初始状态。您可以选择指定 它可以从通用应用程序中的服务器获取状态,或者 还原以前序列化的用户会话 我可以使用PRELOEDSTATE参数成功初始化存储 然而,有时我需要改变国家的结构 举个例子,我最初有 { totalCount: 3, usedCount: 1 } 现在我想把它改成 { totalCount: 3, unusedCount: 2 } 那么第一个结构中的存储状态现在将无效。 至少我想放弃旧的状态,从新的初始状态重新开始 我将状态存储在
{
totalCount: 3,
usedCount: 1
}
现在我想把它改成
{
totalCount: 3,
unusedCount: 2
}
那么第一个结构中的存储状态现在将无效。至少我想放弃旧的状态,从新的初始状态重新开始 我将状态存储在服务器中,并将其用作预加载状态参数。
当状态结构更改时,是否有方法放弃服务器存储状态?我正在共享我的解决方案。 我创建了HOC reducer()
export function versionedReducer(reducerFunction) {
return (state, action) => {
const isInitializationCall = state === undefined
if (isInitializationCall) {
return state
}
const { version } = reducerFunction(undefined, {type: undefined})
if (!version) {
throw "should versioned"
}
const shouldAcceptPreloadedState = state.version && state.version >= version
if (!shouldAcceptPreloadedState) {
state = undefined
}
return reducerFunction(state, action)
}
}