javascript - 反应:无法添加属性'X',对象不可扩展
问题描述
我在我的组件中接收道具。我想用这个组件中的道具添加一个属性“LegendPosition”。我无法做到这一点。请帮我解决一下这个。我已经尝试过这段代码但没有成功:
var tempProps = this.props;
tempProps.legendPosition = 'right';
Object.preventExtensions(tempProps);
console.log(tempProps);
解决方案
你不能修改this.props
. 这tempProps
是参考,this.props
所以它不起作用。props
您应该创建使用的副本JSON.parse()
和JSON.stringify()
var tempProps = JSON.parse(JSON.stringify(this.props));
tempProps.legendPosition = 'right';
Object.preventExtensions(tempProps);
console.log(tempProps);
有关深度克隆对象的更好和更有效的方法,请参阅在 JavaScript 中深度克隆对象的最有效方法是什么?
推荐阅读
- maven - 常见依赖安装覆盖失败
- powershell - 在 powershell/powercli 中使用 invoke-vmscript 时的多线程 foreach 循环
- vb.net - 迁移 VB 项目后的 Nuget Catch 22
- c# - 实体框架/基础存储库类 - 添加重复检查
- apache-spark - 通过 sparklyr 连接到另一个 Spark 集群时是否需要本地版本的 Spark?
- ios - 以与 iPhone 相同的方式截屏 iOS 模拟器(但不保存到桌面)
- html - 内容未居中对齐
- javascript - 获取yLabel值onclick图表js
- java - 双掷硬币
- wix - 未选择的功能正在安装