我对 Elmish 很陌生。使用dotnet new SAFE
. 当我打开应用程序并使用 redux 开发工具 Chrome 扩展程序时,我总是收到“UserMsg”消息。当我点击按钮“-”或“+”时,有没有办法让它“增加”或“减少”?
问问题
38 次
1 回答
0
elmish-browser Navigation 模块将所有消息包装在 Parser 类型中,该类型是Change(用于 URL 更改)或UserMsg(用于其他所有内容)的联合。
这破坏了 withDebugger 和 withConsoleTrace 中的反射......它们无法获取底层消息的名称,因此显示包装的名称。
解决方法是在程序初始化管道中的withDebugger之后调用 toNavigable:
Program.mkProgram init update view
#if DEBUG
|> Program.withConsoleTrace
#endif
|> Program.withReactBatched "elmish-app"
#if DEBUG
|> Program.withDebugger
#endif
|> Program.toNavigable (parseHash route) urlUpdate
|> Program.run
但是,通过这样做,“更改”消息不再发送到调试器。如果您的 urlUpdate 函数直接更新模型状态,这可能是一个问题。您的 urlUpdate 函数可能会更好地提出一个新命令,其中包含一条由主更新函数处理的消息。
于 2019-07-25T22:52:42.480 回答