考虑以下Redux代码,
let cacheState = {};
const mapStateToProps = (state, ownProps) => {
const zug = cacheState.bar === state.bar ? "qux" : "doo";
return {
foo: state.bar,
zug
};
cacheState = state;
};
此代码示例引出以下观察结果:
1)这似乎是在Redux组件中缓存状态的唯一方法
2)如果从此模板创建多个Redux组件,这将中断
3)这是一种反模式
组件了解以前状态的正确方法是什么?
答案 0 :(得分:0)
您可能希望使用中间件来实现此目的。创建商店后,您将进行第一次比较(例如,如果您使用localStorage
)并存储缓存状态。然后,您将假设您的存储和缓存都已同步。随后的每个操作都将通过中间件并将状态与缓存同步。
你是对的,你在这里所做的是一种反模式,这就是为什么中间件方法有助于避免它。 Dan Abramov的第二套Redux视频如果你想通过在Egghead中搜索使用Idiomatic Redux构建React应用程序来检查em,或者{{3 }}