我正在re-frame default template之上构建一个应用程序。
我有以下秘书路线:
(defroute "/users/:id" []
(re-frame/dispatch [:set-active-panel :user-panel])
我想id
从我的试剂组件中的 URL 访问参数。我发现实现它的唯一方法是将其设置为db
. 就像是:
(defroute "/users/:id" [id]
(re-frame/dispatch [:set-user-id id])
(re-frame/dispatch [:set-active-panel :user-panel])
这肯定会污染我的数据库,这种方法对我来说似乎很奇怪,因为我曾经在 react 中写过这样的东西(使用react-router):
<Route path="/user/:id" component={MyComponent}>
// object with params automatically attached as props to MyComponent
那么将秘书URL参数广播到试剂组件的正确方法是什么?
UPD:在评论中有一个关于这个问题的github 讨论的链接。一个是指将 URL 参数设置为 db 作为正确的方法。反正我不是很喜欢。它会导致更多的复杂性(设置参数,订阅它们,取消设置)。而且我不喜欢将 URL 参数视为应用程序状态。有什么黑客或什么吗?