ユーザー入力の数値によって決定されるウィジェットの数を使用して、ウィジェットの動的リストを作成しようとしています。さらに、各ウィジェットはクリック イベントを返します。ユーザー入力を取得するために使用しているものは次のとおりです。
settings :: MonadWidget t m => m (Dynamic t (Maybe Int))
次に、これを使用して乱数ジェネレーターのリストを生成します (これらが の値であるという事実は重要でRandomGen
はありません。要素の数ではなく、各要素の内容に使用されるだけです)。
split' :: RandomGen g => Int -> g -> [g]
-- ...
gs <- mapDyn (maybe (split' 1 g) (flip split' g)) =<< settings
今私は持っていgs :: (MonadWidget t m, RandomGen g) => Dynamic t [g]
ます。g
ウィジェットごとに1 つ。これらのウィジェットEvent
は値を返すので、それらを組み合わせて (つまりleftmost
)、その値をfoldDyn
どこかで使用する必要があります。
go :: (MonadWidget t m, Random g) => g -> m (Event t MyType)
-- ...
clicked <- el "div" $ do
-- omg
xs <- simpleList gs go
-- would like to eventually do this
dynEvent <- mapDyn leftmost xs
return $ switch (current dynEvent)
しかし、これまでのところ、私はxs :: Dynamic t [Dynamic t (m (Event t MyType))]
.
私が本当に必要としているのは、xs :: MonadWidget t m => Dynamic t [Event t MyType]
代わりに何らかの方法で作成することだと思いますが、simpleList
.