clojure - OM-next 远程同步教程 send-to-chan

标签 clojure autocomplete clojurescript om

我可能做错了什么,但我相信 om-next tutorials 之一有一些问题;特别是自动完成示例。我能够弄清楚 one of the issues但还有另一个问题给我带来了一些问题。

一旦我在输入框中输入两个以上字母进行自动补全,就会出现以下代码:

(defn send-to-chan [c]
  (fn [{:keys [search]} cb]
    (when search
      (let [{[search] :children} (om/query->ast search)
            query (get-in search [:params :query])]
        (put! c [query cb])))))

产生以下错误:

Uncaught TypeError: Cannot read property 'call' of undefined
core.js?zx=3jufl8vymlgw [452]   om_tutorial.core.send_to_chan
next.js [3034]  om.next.Reconciler.om$next$protocols$IReconciler$send_BANG_$arity$1
protocols.js [303]  om$next$protocols$send_BANG_
next.js [1656]  anonymous

我不知道为什么会出现这种情况。

任何帮助将不胜感激。

最佳答案

不确定这是否是正确的做法,但这就是我为解决此问题所做的事情。

  1. 从 github 上 checkout om。 (https://github.com/omcljs/om)
  2. cd om
  3. 安装

现在最新的 om 可在您的系统上使用。 (您不能只是将其放入项目文件中,因为它还不在 https://clojars.org/repo/ 上)。

  • 现在我认为这就是我遇到困惑的地方。早些时候在 教程,在自动更正示例之前;有一个项目文件 定义为 [org.omcljs/om "1.0.0-alpha23"] 。然后当 自动更正示例出现,我使用了相同的项目 配置,因为没有提及如何配置 再次项目文件。事实证明你必须使用 [org.omcljs/om "1.0.0-alpha29"] .
  • 一旦发生这种情况,尽管我收到以下警告,但一切正常。

    Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of `om_tutorial$core$AutoCompleter`. See https://fb.me/react-warning-keys for more information.
    

    这将是另一天的战斗。

    顺便说一句。 由于我最初使用的是旧版本的om,仅安装新版本并不能解决问题。 lein clean也没有解决问题。我必须手动删除我的 om-tutorial/resources/public/js文件夹。然后运行lein run -m clojure.main script/figwheel.clj .

    关于clojure - OM-next 远程同步教程 send-to-chan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34603660/

    相关文章:

    html - 使用 clojurescript 在 HTML 页面上渲染 Three.js 场景

    Clojure:比较字符

    clojure - 在 clojure 中,如何浏览函数列表?

    javascript - 通过使用 SetTimeOut 包装它来避免多次自动完成调用

    autocomplete - LimeSurvey 自动完成功能

    javascript - 如何在 ACE.js 编辑器中为数组类型 json 制作智能感知?

    clojure - 如何构造与DataScript中的引用向量完全匹配的查询?

    clojure - 如何在ClojureScript/core.async中停止go block ?

    vim - 如何同时使用vimclojure和SLIMV?

    loops - 迭代 clojure 映射对(循环)