私がやりたいのは、フォーカスされているときに詳細を表示し、フォーカスされていないときに要約を表示するフィールドを設定することです。例えば。
a)。フォーカスを失ったとき (ぼかしを取得しますか?)、値を (状態?) マップに保存し、その値を古い値の関数 (つまり、集計値) に変更します。
b)。フォーカスを取得したら、集計値をマップに保存した古い値に置き換えます
これを行う方法がわかりませんが、おそらく状態モナドと UI モナドが必要だと思います。私の試みは:
renderField :: Map->Int->UI (Element, Map)
renderField vs ix = do
input <- UI.input
on UI.blur input $ \_ -> void $ do
fieldValue <- get value input
let newVs = insert ix fieldValue vs
return input # set UI.value (calcNewValue fieldValue)
on UI.focus input $ \_ -> void $ do
let savedValue = findWithDefault "" ix vs
return input # set UI.value savedValue
return (input, newVs)
しかし、私はこのマップを機能させることができません - それはすべての呼び出しを追跡する必要があるからです.... 私はそれが State モナドか何かであるべきだと思いますか?
ありがとう。
N