CLJSJS 通过提供一个externs 文件来工作,以便 ClojureScript 编译器在执行优化时避免混淆名称。如果您在 Github 中查看文件react-day-picker.ext.js 的末尾,您会注意到它DayPicker
在全局范围内导出名称,因此您可能想要执行类似(js/DayPicker.)
创建DayPicker
.
话虽如此,我建议您研究Shadow-CLJS,因为与 NPM 生态系统的集成会更加熟悉。我有这个 repo 和 react-intl 的一个小演示,它应该很容易替换一些位并让基本的 react-day-picker 示例正常工作。
编辑:我试了一下:
- 克隆我的 cljs-react-intl 存储库
- 使用 npm 安装 react-day-picker:
yarn install react-day-picker
- 编辑文件
assets/index.html
以包含所需的样式表:
<head>
<title>minimal react-intl example</title>
<meta charset="UTF-8">
<!- ADD THE FOLLOWING -->
<link rel="stylesheet" type="text/css" href="https://unpkg.com/react-day-picker@7.4.0/lib/style.css">
</head>
- 更新 main.cljs 文件以调用 day-picker 类:
(ns app.main
(:require ["react-day-picker" :as dp]
[reagent.core :as r]))
;; App
(defn example-app []
[:p
[:div "Here is a day picker:"]
[:> dp/DayPicker]
])
;; App initialization
(defn mount-root []
(r/render [example-app] (.getElementById js/document "app")))
(defn main! []
(mount-root)
(println "[core]: loading"))
(defn reload! []
(mount-root)
(println "[core] reloaded"))
yarn run html
yarn shadow-cljs watch app
截屏:
