gpt4 book ai didi

javascript - 将秘书 URL 参数广播到试剂组件的正确方法是什么

转载 作者:数据小太阳 更新时间:2023-10-29 05:32:29 25 4
gpt4 key购买 nike

我正在 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 中写过这样的东西(使用 react-router ):

<Route path="/user/:id" component={MyComponent}>
// object with params automatically attached as props to MyComponent

那么将秘书URL参数广播到试剂组件的正确方法是什么?

UPD:在评论中有一个指向 github discussion 的链接这个问题。 Ones 指的是将 URL 参数设置为 db 作为正确的方法。反正我不是很喜欢。它会导致更多的复杂性(设置参数、订阅它们、取消设置)。而且我不喜欢将 URL 参数视为应用程序状态。有没有黑客之类的东西?

最佳答案

关于https://github.com/gadfly361/reagent-seed/issues/4的讨论似乎完全涵盖了您的场景,我认为这种方法遵循重新构建的“单一数据库”理念,您的数据库内容决定了应用程序的整个状态(包括面板及其参数)。

我认为这是一个关于相信单原子 DB 是否是正确方法的问题。直接使用路径参数(如 Route 组件直接从 URL 读取它们)就像编写一个不使用原子数据库但使用一些替代数据源(在本例中为 URL 路径)的组件。

有人可能会说 Route 组件执行的正是您所说的复杂逻辑(它订阅路径更改并管理另一个组件状态)。在这种情况下,您只是重复使用 Route 组件中的现有代码片段,而不是在您的代码中根据秘书路由更新 URL 路径更改的数据库数据。

关于javascript - 将秘书 URL 参数广播到试剂组件的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com