Pra*_*ava 7 reactjs jestjs enzyme babel-jest
当我为我的 React 组件编写测试用例时,我得到了
类型错误:无法分配给对象“#”的只读属性“x”
其中,当应用程序运行时,它不会抛出类似的错误
它的代码非常基本
this.props.defaultForm = true;
为什么测试和实际应用程序 RUN 的行为不同?
如果我想编写一个测试用例,有什么办法解决?
the*_*gie 19
有一种方法可以做到这一点;
使用Object.assign()方法或 JavaScript扩展运算符创建对象的“克隆”
let clone = Object.assign({}, this.props);
或者
let clone = { ...this.props };
然后,更改您需要的值并返回克隆结果。
let clone = Object.assign({}, this.props);
clone.defaultForm = true;
return clone;
Run Code Online (Sandbox Code Playgroud)
但考虑到 Object.assign() 创建对象的浅拷贝。因此,如果您需要深拷贝,我建议使用以下方法:
let deepClone = JSON.parse(JSON.stringify(this.props));
deepClone.defaultForm = true;
return deepClone;
Run Code Online (Sandbox Code Playgroud)
在这里,“字符串化”对象然后将其解析回来将创建对象的全新深度克隆副本。
归档时间: |
|
查看次数: |
27537 次 |
最近记录: |