我目前正在尝试学习安全堆栈,特别是尝试通过 Elmish 处理 URL 导航;我遵循 Elmish 站点上的示例代码,该代码定义了一个路由映射函数,然后将其传递给parsePath函数。但是,Program.toNavigable需要Parser<'a>类型(Location -> 'a的类型别名)作为其第一个参数,但示例代码(parsePath 路由)的第一个参数是Location -> 'a option。显然我可以使用函数组合来获得正确的输入,但似乎我在这里遗漏了一些东西。任何熟悉 Elmish 中的 URL 导航的人都可以建议吗?
问问题
192 次
1 回答
1
好吧, aParser<'a option>
是a Parser<'a>
(只是和 another '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.run
于 2019-07-28T12:01:05.400 回答