在ClojureScript Om应用中是否可以重用现有的React组件?

4

我目前的项目中有很多React组件。如果我决定在Om中编写下一个项目,有没有任何方法可以重用这些组件?


看起来,Reagent 可以重用原始的 React 组件:https://github.com/reagent-project/reagent/blob/master/src/reagent/core.cljs#L46 - azaviruha
1个回答

1
是的,这是可能的。我创建了一个日期组件,我有四个实例。其中一个用于选择日期,另一个用于选择一周。
因此,在创建它们时,我传递了一个地图来配置它们:
(om/build common/column-input-date {:component-id :selected-daily-date})
(om/build common/column-input-date {:component-id :selected-weekly-date})
(om/build common/column-input-date {:component-id :selected-monthly-date})
(om/build common/column-input-date {:component-id :selected-jobs-date})

然后在组件中:
(defn column-input-date [data owner]
  "column input date"
    (reify
      om/IInitState
      (init-state [_]
                  {:e-map {:display (:display data)
                           :component-id (:component-id data)}})
      om/IDidMount

在页面之外,一切都是组件,所以我有大约20个组件。我的组件通过core.async进行通信,并从ref-cursors获取它们的数据。我曾尝试将数据传递到组件树中,但决定这样做过于紧密耦合。


1
嗯,我没有问题可以在Om应用中重复使用“Om”组件。问题是关于在Om应用程序中重用以纯JavaScript React编写的React组件。 - azaviruha
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Chaos Rules

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接