为了账号安全,请及时绑定邮箱和手机立即绑定

在一个标签中取消订阅 observable 会禁用所有吗?

在一个标签中取消订阅 observable 会禁用所有吗?

慕森王 2021-10-29 16:45:21
我已经使用 Riot.js 构建了一个 SPA,该 SPA 将专有消息传递系统接收到的数据可视化。为了使标签对更改做出反应,我riot.ob在riot上下文中创建了一个全局 observable ( ),当从服务器接收到新值时,它会触发一条消息:riot.ob.trigger('valueUpdate', stationId, datapointId, value);如果消息是针对此标签的,则有许多不同的标签订阅此事件并触发更新:riot.ob.on('valueUpdate', function (stationId, datapointId, value) {    if (stationId == self.stationId && datapointId == self.datapoint.id) {        self.value = value;        self.update();    }});这很好用。当我在我的应用程序中导航时会出现问题,这意味着我需要在特定区域卸载标签并安装其他东西。当我卸载像上面这样的标签时,我需要取消订阅valueUpdate事件,所以我使用这个:this.on('unmount', function () {    riot.ob.off('valueUpdate');})但是现在所有其他仍然安装在其他地方的标签也会自动取消订阅,并且不再监听这个valueUpdate事件。如何仅取消订阅单个标签的事件处理函数?我是否必须创建一个命名函数并将其传递给riot.ob.off('valueUpdate');某种方式?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信