目前,我正在尝试学习安全堆栈,特别是尝试通过Elmish处理URL导航;我遵循了Elmish站点上的示例代码,该代码定义了路由映射函数,然后将其传递给parsePath函数。然而,Program.toNavigable希望Parser< 'a >类型( Location ->‘a的类型别名)作为其第一个参数,但示例代码(parsePath路由) first参数是Location ->’a Optional。显然,我可以使用函数组合来获得正确的输入,但这里似乎遗漏了一些东西。任何人熟悉Elmish中的URL导航,可以提供建议吗?
发布于 2019-07-28 12:01:05
嗯,Parser<'a option>是一个Parser<'a> (与另一个'a一起使用),所以一切都应该很好。
例如,假设以下类型定义了所有导航:
type Route = Blog of int | Search of string那么,有关各方应具有以下类型:
init: Route option -> Model * Cmd<Msg>
parser: Parser<Route option>
urlUpdate: Route option -> Model -> Model * Cmd<Msg>然后你编写你的程序:
Program.mkProgram init update view
|> Program.toNavigable parser urlUpdate
|> Program.withReactBatched "elmish-app"
|> Program.runhttps://stackoverflow.com/questions/57234897
复制相似问题