0

我对 cljs 很陌生。我正在用 re-frame 练习 cljs。我遇到了访问 js 实例方法的问题。

(->> quill-contents
    (.parse js/JSON)
    (.setContents @editor))

如果我尝试调用.setContents@editor ,它是包裹的 j​​s 实例r/atom(实际上,它是 Quill 编辑器实例)。实际上,这段代码在开发模式下运行良好,但它会引发错误,例如xi(...).hi is not a function在发布版本之后。

我猜这.setContents是在发布版本中编译.hi的,所以它无法从 js 实例中找到方法。

我正在shadow-cljs用来构建这个重新构建的项目。

我该如何解决这个问题?

4

1 回答 1

2

这是由于缺乏外部人员。^js在前面添加@editor

(->> quill-contents
    (.parse js/JSON)
    (.setContents ^js @editor))

setContents在这种情况下,它将自动生成一个 extern for 。

于 2021-06-13T08:38:58.887 回答