4
爲什麼Platform.Sub不公開任何過濾功能?有一個像filterMap : (a -> Maybe msg) -> Sub a -> Sub msg
這樣的函數來監聽某些按鍵上的事件,而不是其他按鍵,這將非常方便。爲什麼我無法過濾訂閱?
該功能是否可以另一種方式實現,這是一個好主意嗎?
爲什麼Platform.Sub不公開任何過濾功能?有一個像filterMap : (a -> Maybe msg) -> Sub a -> Sub msg
這樣的函數來監聽某些按鍵上的事件,而不是其他按鍵,這將非常方便。爲什麼我無法過濾訂閱?
該功能是否可以另一種方式實現,這是一個好主意嗎?
雖然我不能給它的缺席說話(當然filterMap
似乎是合理的),你可以通過你的update
功能之前,做一個過濾器/地圖有一種變通方法,並映射到一個NoOp
消息時,你的過濾器返回Nothing
:
import Maybe
yourFilterFunction : Msg -> Maybe Msg
yourFilterFunction = ...
main =
Html.program
{ init = init
, view = view
, update = update << Maybe.withDefault NoOp << yourFilterFunction
, subscriptions = subscriptions
}
你NoOp
情況下,在update
功能將只返回model ! []
。