首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能只订阅一次app-db in re-frame?

我如何才能只订阅一次app-db in re-frame?
EN

Stack Overflow用户
提问于 2021-06-08 05:27:06
回答 1查看 37关注 0票数 0

我需要向app-db订阅一个值,该值在呈现父组件时只需要检查一次。例如,当我单击"Click me“按钮时,有一个正在处理的on-click事件,我已经将其状态与正在完成的进程列表一起保存在app-db上,我只想对照该值检查一次,并根据该值显示两个不同的组件。

如果值为空,我想继续正常的事件。如果没有,我想向用户展示一些其他的东西,例如弹出窗口。

现在的问题是,因为它正在主动监听app-db,并且值几乎每秒都在变化(或在几毫秒内),所以每次更改app-db时,上述弹出窗口都会出现、消失、重新出现,然后又以极快的速度消失,这根本没有任何帮助。

我只想订阅一次,获取值,并根据第一次呈现父对象时的值进行检查。然后我会做点什么让它消失。

如果我再次点击"Click me“按钮,那只是我想要重新渲染的时候。

我还没有完全做到这一点。我尝试了许多方法,比如在发送弹出窗口的过程中引入延迟,以及在将处理状态引入app-db之后,首先希望由于数据已经处于稳定状态,它可能不会发生太多变化,但现在我意识到它正在积极侦听它,预计值将会发生变化。

我确实试过在没有deref的情况下使用订阅,但这只是在我的前端引入了一个错误,所以我不确定现在该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-08 15:43:58

我的组件消失/重新出现的错误原来是由其他东西触发的。与popup-ids的冲突/不匹配,以及清除一个popup导致全部销毁的调度。

但是为了回答这个问题,当您在let绑定之后引入一个(fn [])块并从fn内部调用组件时,它可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67878891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档