找回密码
 立即注册

QQ登录

只需一步,快速开始

爱迪生

超级版主

53

主题

62

帖子

1261

积分

超级版主

Rank: 8Rank: 8

积分
1261
爱迪生
超级版主   /  发表于:2021-12-30 19:17  /   查看:1408  /  回复:0
本帖最后由 爱迪生 于 2021-12-30 19:18 编辑

在使用React开发中,有这样的应用场景,如获取组件A中SpreadJS表格某一个单元格的样式,复用到组件B中的另一个SpreadJS表格,
问题:
  1.获取到的style对象结构如下
未知.png255022582.png

2. 可通过style.clone(),对style对象深拷贝,很多时候,style作为一个对象的属性,要对该对象进行深拷贝,通过JSON.parse(JSON.stringfy(obj))方法对包含style的对象进行深拷贝
nflosheet.png488504027.png
查看深拷贝后的style对象
foreulasArdstyles.png859482116.png 3.如图所示,style属性部分丢失,继承的属性也丢失,通过setStyle()将该style作为参数,设置样式,就会报错
JSON.parse(JSON.stringfy(obj))使用弊端参考(https://blog.csdn.net/xiaokanfuchen86/article/details/106149171/
解决方法:
深拷贝方法很多,这边提供一个作为参考,可根据实际业务编码
  1. function clone(orgin) {
  2.   if (orgin) {
  3.       let originProto = Object.getPrototypeOf(orgin);
  4.       return Object.assign(Object.create(originProto), orgin);
  5.   }
  6. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部