找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.Xu SpreadJS 开发认证
超级版主   /  发表于:2024-4-29 11:19  /   查看:1016  /  回复:0
在协同等场景下,我们经常需要执行Command指令来实现协同的效果,但是在执行Command的时候,却发现有些Command执行没有生效,以“fill”为例,它的Command看起来是这样的:


image.png354783934.png

其中的fillRange和startRange为Range对象。

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

  1. startRange: {
  2.   row: 0,
  3.   col: 1,
  4.   rowCount: 2,
  5.   colCount: 1,
  6. },
  7. fillRange: {
  8.   row: 2,
  9.   col: 1,
  10.   rowCount: 19,
  11.   colCount: 1,
  12. },
复制代码


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

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

具体可以参考附件。
image.png644732360.png

为什么我的Command没有生效.js

1.52 KB, 下载次数: 400

0 个回复

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