Elm:在 foldp 中结合 actions.signal 和键盘输入
Elm : Combining both actions.signal and keyboard input in foldp
目前我正在尝试使用 elm(所以认为我是初学者)并且想知道以下内容,
我定义了以下模型:
model = foldp update initialModel actions.signal
我明白 foldp
是如何工作的,它调用我的更新方法来更改 initialModel
每当执行一个动作时(从我的 html 按钮等调用)。
但是,现在我正在努力寻找如何将按键集成到这个模型中,因为 foldp
只接受一个变化的信号。
所以我想得到这样的东西
model = foldp update initialModel (actions.signal + Keyboard.arrows)
我尝试使用 merge
方法,但我似乎无法让它工作。
谢谢!
您想使用 Signal.merge - 请查看 http://elm-lang.org/guide/reactivity#signals 以了解信号图概览
鉴于您有一个 actions
邮箱,您是否也定义了一个 Action
类型?然后你可以扩展它以包含一个 Keypress
动作:
type Action =
...
| KeyPress { x : Int, y : Int }
inputs =
Signal.merge actions.signal (Signal.map KeyPress Keyboard.arrows)
model =
Signal.foldp update initialModel inputs
目前我正在尝试使用 elm(所以认为我是初学者)并且想知道以下内容,
我定义了以下模型:
model = foldp update initialModel actions.signal
我明白 foldp
是如何工作的,它调用我的更新方法来更改 initialModel
每当执行一个动作时(从我的 html 按钮等调用)。
但是,现在我正在努力寻找如何将按键集成到这个模型中,因为 foldp
只接受一个变化的信号。
所以我想得到这样的东西
model = foldp update initialModel (actions.signal + Keyboard.arrows)
我尝试使用 merge
方法,但我似乎无法让它工作。
谢谢!
您想使用 Signal.merge - 请查看 http://elm-lang.org/guide/reactivity#signals 以了解信号图概览
鉴于您有一个 actions
邮箱,您是否也定义了一个 Action
类型?然后你可以扩展它以包含一个 Keypress
动作:
type Action =
...
| KeyPress { x : Int, y : Int }
inputs =
Signal.merge actions.signal (Signal.map KeyPress Keyboard.arrows)
model =
Signal.foldp update initialModel inputs