找回密码
 立即注册

QQ登录

只需一步,快速开始

mmm223

金牌服务用户

11

主题

34

帖子

107

积分

金牌服务用户

积分
107
mmm223
金牌服务用户   /  发表于:2024-7-25 16:39  /   查看:458  /  回复:4
本帖最后由 mmm223 于 2024-7-25 16:40 编辑

之前发过帖子询问过官方撤销栈可否替换,回答是不可以,所以我自己做了一个撤销栈,这个撤销栈就需要用到脏数据,获取下改变前的值,但是我刚才发现fill操作,当填充相同的值,得到的脏数据的oldValue居然是空字符串

image.png457808226.png


image.png255747679.png
如图所示,我会从第91行开始向下填充到97行,其中93行94行的数据跟填充值是一样的,都是3

image.png502673644.png   打印代码如上,可以看到 row92跟93也就是93行94行的oldValue是undefined,这是为什么它们不应该是3吗?

4 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-25 17:39:35
沙发
您好,根据您提供的信息来看,猜测93行和94行一开始应该是空单元格,然后设置为了"3"。

所以在最后getDirty时,虽然fill操作并没有修改93行和94行单元格的值,但之前从空单元格变为"3"的操作仍被打印了出来。

如果一开始并不是空单元格的话,是不会打印的:

image.png110003050.png

image.png151091918.png
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:2024-7-25 17:53:25
板凳
Joestar.Xu 发表于 2024-7-25 17:39
您好,根据您提供的信息来看,猜测93行和94行一开始应该是空单元格,然后设置为了"3"。

所以在最后getDi ...

所以是undefined是因为fill遇到相同值其实不修改的原因是吧
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-26 09:46:42
地板
mmm223 发表于 2024-7-25 17:53
所以是undefined是因为fill遇到相同值其实不修改的原因是吧

是的,可以这么理解。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-8-29 13:47:01
5#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部