在 Elm 中是否可以使用一个事件处理程序触发多个输入句柄?例如,假设我有以下内容:
button
[ type' "button", on "click" getAnything go.handle (\_ -> searchInput) ]
[ text "Go" ]
在这种情况下,单击 Go 按钮会将值发送到go
输入。我想要的是在同一个点击事件(比如go2
输入)上向不同的输入发送不同的值。
有没有办法说,组合输入或让一个输入扇出多个信号?
在 Elm 中是否可以使用一个事件处理程序触发多个输入句柄?例如,假设我有以下内容:
button
[ type' "button", on "click" getAnything go.handle (\_ -> searchInput) ]
[ text "Go" ]
在这种情况下,单击 Go 按钮会将值发送到go
输入。我想要的是在同一个点击事件(比如go2
输入)上向不同的输入发送不同的值。
有没有办法说,组合输入或让一个输入扇出多个信号?
您可以将一个输入扇出到多个信号。我不知道组合输入的方法。
扇出基本上意味着您通过将两个不同的值包装在一个元组中来将它们发送到同一个输入。然后将您的输入分散到多个信号将涉及以下内容:
signalUnzip : Signal (this,that) -> (Signal this, Signal that)
signalUnzip signal = (fst <~ signal, snd <~ signal)
go : Input (String,Int)
go = input ("",0)
(goFanoutPart1,goFanoutPart2) = signalUnzip go.signal
-- goFanoutPart1 : Signal String, goFanoutPart2 : Signal Int