找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2024-4-11 14:31  /   查看:432  /  回复:8
1金币
我通过 setValue 修改了某些值,同时想能够触发 ValueChanged 回调,但是发现并不能触发。这是什么问题

8 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-11 15:00:29
沙发
您好,ValueChanged事件只监听用户页面UI的操作,不监听代码操作,setValue是一句代码,您什么是否触发这段代码您自己是可以知道的,因此完全不需要事件来监听
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2024-4-11 15:52:04
板凳
Richard.Huang 发表于 2024-4-11 15:00
您好,ValueChanged事件只监听用户页面UI的操作,不监听代码操作,setValue是一句代码,您什么是否触发这段 ...

我知道一般情况是可以在自己的代码环境当中做到主动通知。但问题在于,我这里的 setValue 是在 自定义的 CellType 当中进行调用的,期待能够主动调用的函数和注册这个cellType的并不在同一个上下文环境当中,要怎么解决这个问题?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-11 17:33:46
地板
nutstore 发表于 2024-4-11 15:52
我知道一般情况是可以在自己的代码环境当中做到主动通知。但问题在于,我这里的 setValue 是在 自定义的  ...

请问是否有代码片段或者对应的画图方式解释一下,您所说的“期待能够主动调用的函数和注册这个cellType的并不在同一个上下文环境当中”是什么意思,因为按照我们的理解,既然您要使用setValue,那么对应的执行您要的逻辑即可,为什么会有上下文环境不同一说呢?
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2024-4-11 18:01:46
5#
Richard.Huang 发表于 2024-4-11 17:33
请问是否有代码片段或者对应的画图方式解释一下,您所说的“期待能够主动调用的函数和注册这个cellType的 ...

可以理解为这样的流程,比如说

我是用react编写前端。

场景:注册一个 ACustomCellType 的自定义单元格类型,我在使用这个自定义单元格修改一些数据的时候,比如说 setEditorValue 这个时候 需要额外使用从 context当中拿到的 WorkSheet 操作 setValue 这个api 来修改一些其他单元格的数据。


因为注册ACustomCellType到 Spreadjs 是需要在层级很上面的处理的动作,而我对于 ValueChange 的监听是在很具体的某个组件下的上下文中实现的,这时候 我无法将 ValueChange 同时给 ACustomCellType 当中去调用,spreadjs貌似也没提供相关的注册方法给我使用吧
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-12 09:50:43
6#
nutstore 发表于 2024-4-11 18:01
可以理解为这样的流程,比如说

我是用react编写前端。

了解了,对于您的需求,我想您可以定义一个全局变量,并在子页面上去监听这个全局变量的变化,只要发生变化就执行您需要的逻辑即可
回复 使用道具 举报
AKA_HSTS
注册会员   /  发表于:2024-4-12 16:11:42
7#
想借用事件监听来达成的话,其实这里可以通过监听CellChanged事件,调用setValue()设值会触发CellChanged事件,对应的参数中propertyName 为“value”。

评分

参与人数 1金币 +200 收起 理由
Ellia.Duan + 200

查看全部评分

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-12 17:33:27
8#
可以参考下楼上热心用户的方案。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-23 12:27:49
9#
您好,通过楼上的回复是否可以解决您的问题,如果已解决,本贴就先结贴啦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部