gan*_*alf 3 immutability redux react-redux
我需要使用 Deep-freeze 库深度冻结 React Redux 应用程序中的整个 Redux 状态,以检查状态是否有任何突变。我应该如何使用deep-freeze和react redux应用程序来实现这一点?
我假设您的意思是您希望使用深度冻结作为更改的测试工具(因为我不确定您为什么要冻结整个状态)。一直以来都有一些例子。
通常,您将 deep-freeze 与 Expect 一起使用,并专注于您的减速器,因为减速器被赋予一个状态并且它们返回预期状态。
典型的测试通常如下所示(摘自此处):
// a test for the reducer
const testReducer = () => {
const stateBefore = { value: 'foo' };
const action = {
type: 'SET_STATE',
value: 'bar'
};
const stateAfter = { value: 'bar' };
// cannot modify
deepFreeze(stateBefore);
deepFreeze(action);
expect(store(stateBefore, action)).toEqual(stateAfter);
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以验证所采取的操作不会以任何方式改变您的状态。
Egghead.io 也有一个关于此的精彩视频。
当然,使用不必仅限于测试;如果你愿意的话,我想你也可以在你的代码中引入深度冻结作为断言工具。我个人没有任何这样做的经验。
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |