【发布时间】:2016-07-19 22:07:09
【问题描述】:
我正在re-frame default template 之上构建一个应用程序。
我有以下秘书路线:
(defroute "/users/:id" []
(re-frame/dispatch [:set-active-panel :user-panel])
我想从我的试剂组件中的 URL 访问 id 参数。我发现实现它的唯一方法是将其设置为db。比如:
(defroute "/users/:id" [id]
(re-frame/dispatch [:set-user-id id])
(re-frame/dispatch [:set-active-panel :user-panel])
这肯定会污染我的数据库,而且这种方法对我来说似乎很奇怪,因为我曾经在反应中写过这样的东西(使用react-router):
<Route path="/user/:id" component={MyComponent}>
// object with params automatically attached as props to MyComponent
那么将秘书URL参数广播到试剂组件的正确方法是什么?
UPD: 在 cmets 中有一个指向此问题的 github discussion 的链接。一个是指将 URL 参数设置为 db 作为正确的方法。反正我不是很喜欢。它会导致更多的复杂性(设置参数,订阅它们,取消设置)。而且我不喜欢将 URL 参数视为应用程序状态。有什么破解之类的吗?
【问题讨论】:
-
@PiotrekBzdyl 我已经更新了我的问题。如果您有任何技巧,请告诉我,无论如何,谢谢。
-
@PiotrekBzdyl 您能否将其添加为答案。如果几天后没有新内容出现,我会将其标记为正确。感谢您的帮助
-
我已将我的 cmets 移动到答案中。
标签: javascript clojure clojurescript reagent re-frame