threepenny を使って FRP について学ぼうとしています。
ユーザーの入力を含むイベントを生成し、ボタンがクリックされるたびに発生させたいと思います。コードはgithubで確認できます。
私は関数でそうしようとしました
submitEvents :: Element -> Element -> UI (Event String)
submitEvents button input = do val <- get value input
return $ val <$ (UI.click button)
そして、後で do ブロックでそのように使用されます。
nameE <- submitEvents loginButton userNameInput
currName <- stepper "Ash" nameE
element currNameElem # sink text currName
しかし、最初のクリックの後、空の文字列になってしまいます。それ以前は、予想どおり値「Ash」が含まれています。私が考えているのは、クリックごとに1回ではなく、イベントストリームを生成するときに入力の値が抽出されているということです。私はドキュメントを見回しましたが、何もm a -> Event () -> m (Event a)
見当たりませんでした.