2

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)見当たりませんでした.

4

1 に答える 1