我需要使用深度冻结库深度冻结react redux应用程序中的整个redux状态,以检查状态上的任何突变。 我应该如何使用react redux app进行深度冻结来实现这一目标?
答案 0 :(得分:3)
我会假设您的意思是指您使用深度冻结作为变更的测试工具(因为我不确定您为什么要冻结整个州)。一直有一些例子。
通常你会使用预期的深度冻结,并专注于你的减速器,因为减速器被赋予状态并且它们返回预期的状态。
典型的测试通常看起来像这样(taken from here):
// 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);
}
通过这种方式,您可以验证所采取的措施不会以任何方式改变您的状态。
Egghead.io也有关于here的好视频。
当然,用法并不仅限于测试;您可以在整个代码中引入深度冻结作为断言工具,如果您愿意的话我也应该这样做。我个人没有任何经验这样做。