https://www.reddit.com/r/Clojure/comments/4el0xi/how_to_use_an_existing_reactjs_component_with/
有一篇关于在 CLJS/Reagent 项目中使用现有 ReactJS 组件的现有帖子。我正在寻找相反的做法。我有一堆 CLJS 组件,想将它们编译成某种 ui 库,以便 React 开发人员可以使用它们。也就是说,如果我有一个按钮 CLJS 组件,我希望能够在 React/js 应用程序文件中使用 < Button /> 或 mylib.Button(_) 等呈现该按钮。
我已经广泛阅读了这篇文章 - https://shadow-cljs.github.io/docs/UsersGuide.html#target-node-library - 但它并没有完全奏效。我一直在使用“:target :node-library”,我可以获得简单的函数(例如,返回字符串/数字)来编译和在我的应用程序中工作,等等。但它不适用于整个组件。例如,我的 cljs 按钮组件包含:
defn button [props & children]
但是当我尝试传递这些参数时(我在我的 App.js 文件中调用 {lib.button({}, {})}),我得到了像“没有定义协议方法 IMap.-dissoc”这样的错误,因为我我相信,我试图将 JS 对象传递给仅限 CLJS 的函数。不知道如何解决这个..
如果有助于澄清,我可以对此进行更多解释。如果有人有参考演示项目或可以链接到我的任何资源,那也将非常有帮助。