使用 reactive-banana 时如何获取 ui 元素的内容? event0 返回 Event ()
类型的事件,它具有单位类型而不是控件的类型。 event1 接受 Event w (a -> IO ())
类型的事件, 但命令的类型为 Event w (IO ())
. mapAccumE 和 mapAccumB 将纯函数作为参数,所以 get text foo
不能和他们一起使用。
最佳答案
基本上,您希望使用函数而不是数据。如果您正在考虑“我如何创建一个在框中包含当前文本的行为”,那么您不会。相反,您编写将当前文本作为参数的函数,并在必要时将其传入。假设您想在按下按钮时打印文本框的内容。然后你会做这样的事情:
eButton :: NetworkDescription (Event ())
eButton = event0 button command
network = do
pressButton <- eButton
reactimate $ (\() -> get text foo >>= print) <$> pressButton
如果您需要输入行为,您可以类似地使用类型为
Behavior (String -> a)
的函数(或您需要的任何类型),然后只需在 reactimate
处传入字符串称呼。
关于haskell - 使用 reactive-banana-wx 的 UI 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6544599/