Я создаю приложение на основе шаблона re-frame по умолчанию.
У меня есть следующий маршрут секретаря:
(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])
Это определенно загрязнит мою БД, и такой подход кажется мне странным, поскольку я писал что-то подобное в реакции (с реагировать-маршрутизатор):
<Route path="/user/:id" component={MyComponent}>
// object with params automatically attached as props to MyComponent
Итак, как правильно передать параметры URL-адреса секретаря компоненту-реагенту?
UPD: В комментариях есть ссылка на обсуждение на github этой проблемы. Одни относятся к установке параметров URL в db как к правильному способу. В любом случае, мне это не очень нравится. Это вызывает гораздо большую сложность (установка параметров, подписка на них, отмена). И мне не нравится думать о параметрах URL как о состоянии приложения. Есть какой-нибудь хак или что-то в этом роде?