Joestar.Xu 发表于 2024-4-29 11:19:14

为什么我的Command没有生效?

在协同等场景下,我们经常需要执行Command指令来实现协同的效果,但是在执行Command的时候,却发现有些Command执行没有生效,以“fill”为例,它的Command看起来是这样的:




其中的fillRange和startRange为Range对象。

但是在执行的时候可能会将这个Command对象转成字符串,此时的fillRange和startRange就会变为:

startRange: {
row: 0,
col: 1,
rowCount: 2,
colCount: 1,
},
fillRange: {
row: 2,
col: 1,
rowCount: 19,
colCount: 1,
},

执行这样的命令将无法生效,其主要原因是因为Range对象在被序列化后无法正常被SpreadJS识别,进而导致命令无效。

所以,关键问题在于将Command序列化后,传入execute方法前需要再反序列化一下,重新创建Range对象。

具体可以参考附件。
页: [1]
查看完整版本: 为什么我的Command没有生效?