1金币
本帖最后由 清风沐阳 于 2025-3-31 11:50 编辑
我的自定义单元格类型:CustomCellType中,有一个自定义utils属性是另一个CustomUtils类的实例,当我复制或拖拽填充这个单元格的时候,发现utils似乎只被浅拷贝了导致我的逻辑有问题,
示例:
(1)在CustomCellType的constructor中实例化utils(this.utils = new CustomUtils())
(2)CustomUtils中有一个属性startX负责保存paint中的x值,有一个方法onPaint接收CellTypes.Base paint方法所有参数(paint(ctx, value, x, ...) { this.utils.onPaint(ctx, value, x, ...)}),并在utils的onPaint方法中更新startX的值(onPaint(ctx, value, x, ...) {this.startX = x})
(3)在CustomCellType的processMouseMove方法中调用this.utils.startX, 发现所有的CustomCellType单元格的utils的startX都是新的粘贴单元格的startX(实际上两个单元格根本不在同一列)
|
最佳答案
查看完整内容
在复制或者拖拽填充的时候, Sheet会去调用CellType的toJSON和fromJSON方法进行复制, 你可以在CustomCellType类里面实现toJSON和fromJSON, 每次fromJSON都创建新的CustomUtils就可以了
|