Mas*_*sse 6 haskell reactive-programming 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
Run Code Online (Sandbox Code Playgroud)
如果您需要将输入输入到行为中,您可以类似地使用具有类型Behavior (String -> a)(或您需要的任何类型)的函数,然后只需在调用时传入字符串即可reactimate。