accumB
的文档说:
注意:与步进器一样,行为的值会稍微改变 后"事件发生了。这允许递归定义。
在我的情况下,没有递归,但我希望立即获得更新"而不是"稍后"。为什么没有accumB
的特殊版本?我想,我错过了一些明显的东西?
编辑:在我的应用程序中,我有data Config
,其中包含各种配置值和一堆Event (Config -> Config)
,当用户更改GUI中的某些值时会触发这些值。现在,我希望我的程序的其他部分可以随时访问Config
,这就是我在那里使用Behavior Config
的原因。问题是,当触发更改事件时,行为仍具有Config
的旧值,因此我无法立即观察到此更改。
答案 0 :(得分:1)
如果您有Behavior Conf
,那么您可以通过Applicative
类组合器从中制作其他行为。例如,可能是您将其转换为Behavior String
,然后显示在文本字段中。将行为提供给此类UI窗口小部件后,窗口小部件代码可确保显示行为的 new 值。
如果您需要明确指示配置何时发生变化,那么Event Conf
可能更合适。您可以使用accumE
函数,它将包含 new 值。