Haskell 将文本字段和按钮单击转换为“UI”(事件字符串)`
我想用三便士来学习玻璃钢 我希望生成包含用户输入的事件,并在每次单击按钮时触发。你可以在屏幕上看到代码 我试着用一个函数来实现Haskell 将文本字段和按钮单击转换为“UI”(事件字符串)`,haskell,frp,threepenny-gui,Haskell,Frp,Threepenny Gui,我想用三便士来学习玻璃钢 我希望生成包含用户输入的事件,并在每次单击按钮时触发。你可以在屏幕上看到代码 我试着用一个函数来实现 submitEvents :: Element -> Element -> UI (Event String) submitEvents button input = do val <- get value input return $ val <$ (UI.click button)
submitEvents :: Element -> Element -> UI (Event String)
submitEvents button input = do val <- get value input
return $ val <$ (UI.click button)
submitEvents::Element->Element->UI(事件字符串)
submitEvents button input=do val Event()->m(事件a)
,但我对frp比较陌生,可能错过了什么。哦,我明白了。我正在从UI.valueChange
构建我需要的东西
submitEvents :: Element -> Element -> UI (Event String)
submitEvents button input = do currVal <- stepper "" $ UI.valueChange input
return $ currVal <@ (UI.click button)
submitEvents::Element->Element->UI(事件字符串)
submitEvents button input=do currVal正如您已经注意到的,值val
不会随时间变化,它是调用get
时,即构建事件流时输入小部件的值。您还可以通过查看其类型来了解这一点:val::String
,它不是可以随时间改变的。相反,currName::Behavior String
,表示一个随时间变化的String
。表面上的低效是一种误导,因为底层的JS实现无论如何都必须在每次按键时更新值,因此无法“只在按下按钮时查看”。
submitEvents :: Element -> Element -> UI (Event String)
submitEvents button input = do currVal <- stepper "" $ UI.valueChange input
return $ currVal <@ (UI.click button)