用于比较缓存状态的Redux模式?

时间:2016-10-10 14:39:55

标签: reactjs redux flux

考虑以下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)这是一种反模式

组件了解以前状态的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可能希望使用中间件来实现此目的。创建商店后,您将进行第一次比较(例如,如果您使用localStorage)并存储缓存状态。然后,您将假设您的存储和缓存都已同步。随后的每个操作都将通过中间件并将状态与缓存同步。

你是对的,你在这里所做的是一种反模式,这就是为什么中间件方法有助于避免它。 Dan Abramov的第二套Redux视频如果你想通过在Egghead中搜索使用Idiomatic Redux构建React应用程序来检查em,或者{{3 }}