使用 reactive-banana 时如何获取 ui 元素的内容?event0 返回一个类型为 的事件Event ()
,它具有单元类型而不是控件的类型。event1 接受 type 的事件Event w (a -> IO ())
,但 command 的 type Event w (IO ())
。mapAccumE 和 mapAccumB 将纯函数作为参数,因此get text foo
不能与它们一起使用。
问问题
312 次
2 回答
4
基本上,您希望使用函数而不是数据。如果您正在考虑“我如何创建一个在框中包含当前文本的行为”,那么您不会。相反,您编写将当前文本作为参数的函数,并在必要时将其传入。假设您想在按下按钮时打印文本框的内容。然后你会做这样的事情:
eButton :: NetworkDescription (Event ())
eButton = event0 button command
network = do
pressButton <- eButton
reactimate $ (\() -> get text foo >>= print) <$> pressButton
如果您需要输入行为,您可以类似地使用具有类型Behavior (String -> a)
(或您需要的任何类型)的函数,然后在reactimate
调用点传递字符串。
于 2011-07-01T17:40:23.177 回答