- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在关注 om-next tutorial .在 Adding Reads部分,有一个功能 get-people
被定义为。与此功能一起,init-data
定义了包含人员列表的 map 。
(defn get-people [state key]
(let [st @state]
(into [] (map #(get-in st %)) (get st key))))
(def init-data {:list/one
[{:name "John", :points 0}
{:name "Mary", :points 0}
{:name "Bob", :points 0}],
:list/two
[{:name "Mary", :points 0, :age 27}
{:name "Gwen", :points 0}
{:name "Jeff", :points 0}]})
(get-people (atom init-data) :list/one) ;; => [nil nil nil]
nil
。我不太明白我应该如何调用这个函数。有人可以帮我吗?谢谢!
最佳答案
好吧,我想通了。init-data
不是调用 get-people
的正确数据结构和。初始数据必须首先使用 Om 的 reconciler
“核对”。 .您可以在本教程的 Normalization 中找到有关协调器的更多信息。部分。
调和init-data
map 然后deref
处理数据返回这个规范化的数据结构:
{:list/one
[[:person/by-name "John"]
[:person/by-name "Mary"]
[:person/by-name "Bob"]],
:list/two
[[:person/by-name "Mary"]
[:person/by-name "Gwen"]
[:person/by-name "Jeff"]],
:person/by-name
{"John" {:name "John", :points 0},
"Mary" {:name "Mary", :points 0, :age 27},
"Bob" {:name "Bob", :points 0},
"Gwen" {:name "Gwen", :points 0},
"Jeff" {:name "Jeff", :points 0}}}
get-people
的有效调用使用协调的 init-data 的函数:
; reconciled initial data
(def reconciled-data
{:list/one
[[:person/by-name "John"]
[:person/by-name "Mary"]
[:person/by-name "Bob"]],
:list/two
[[:person/by-name "Mary"]
[:person/by-name "Gwen"]
[:person/by-name "Jeff"]],
:person/by-name
{"John" {:name "John", :points 0},
"Mary" {:name "Mary", :points 0, :age 27},
"Bob" {:name "Bob", :points 0},
"Gwen" {:name "Gwen", :points 0},
"Jeff" {:name "Jeff", :points 0}}}
; correct function call
(get-people (atom reconciled-data) :list/one)
; returned results
[{:name "John", :points 0}
{:name "Mary", :points 0, :age 27}
{:name "Bob", :points 0}]
:list/one
关联的值。 key 。在这种情况下,该值是映射到 map 中的路径向量(每条路径本身就是一个向量)。 (get-in st [:person/by-name "John"])
并返回 {:name "John", :points 0}
. 关于clojure - Om 下一个教程 : Correctly calling the get-people function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491017/
我对 Java 中的 Web 服务还很陌生。我开始的项目已经实现,并且有很多对 org.apache.axiom.om 命名空间的引用。 om 代表什么? 最佳答案 我猜它代表对象模型,因为它在Axi
我正在尝试执行以下操作。 OMElement soapEnvelope = new StAXOMBuilder(soapEnvelopXMLFilePath).getDocumentElement()
是否可以编写一个不渲染任何内容的组件,例如,如果其游标数据为空? 我不能做 (defn count-or-nothing [list-cursor owner] (reify om/IRe
我在 Om 中显示一个菜单,使用这样的组件和子组件: (def app-state (atom {:location "" :menuitems [["Pa
我正在继承现有的 Sitecore 实现,该实现具有全部使用相同模板的大型内容文件夹。一些文件夹包含数以百计的文章。不同类型的角色应该对不同的文件夹感兴趣。我不想逐篇为每个页面设置角色和配置文件属性。
我们使用 Azure OMS 来监控许多本地服务器。 使用 LogicalDisk(*)\% 可用空间性能计数器时,存在一些不存在的实例名称,例如 HarddiskVolume170、Harddisk
我正在经历这个OM tutorial但我不清楚何时使用 OM 组件与普通函数(尤其是 om/component 宏)。 教程写道: The first argument is a function t
我正在努力理解 om 如何使用 apply 来渲染列表项,如下面摘自 Om 教程页面的示例所示。 (om/root (fn [data owner] (om/component
我试图了解何时必须取消引用游标以获取其值。 在 om cursors wiki它指出 事件处理程序不被认为是渲染阶段的一部分,因此处理程序中的游标应该被删除。 同样显示在 Basic-tutorial
我有一个包含不同页面的 ClojureScript Om 应用程序,这些页面实际上只是同一个应用程序中的不同组件,每个页面可以有一些具有不同样式表的不同组件。其中一些样式表非常复杂,可以相互覆盖。在
我一直在关注 om 教程。我使用 Light Table 来设置外部浏览器连接。此外,在我的 clojurescript 代码中,我正在调用 (enable-console-print!)将我的 pr
我正在更新我的一个突变中的状态,其中一部分未被该组件使用,但被另一个组件使用。当我执行 mutate 时,我看到应用程序状态在 repl 中更新,如果我由于其他原因导致组件重新渲染,它会正确显示,但我
我正在尝试学习 Om,但遇到了一些我不明白的事情。我期望这段代码 (defn search-page-view [app owner] (reify om/IRender (rende
我已经阅读了 David Nolen 的基本 Om 教程,但我仍然对应用程序状态和组件本地状态之间的区别感到有些困惑。当引用游标时,它是否也引用了其中之一或两者? 最佳答案 据我了解: 应用程序状态是
我在将 OMS(操作管理套件)代理连接到 Azure 时遇到问题。它报告“代理发生了未知的故障 12019”。我确信这是一个网络问题,但我无法检测到原因。 最佳答案 也许会晚一点,但可能会帮助别人。
我正在通过 Terraform 部署 AKS 集群。 我在我的 aks 资源 block 中设置了 oms_agent block : resource "azurerm_kubernetes_clu
我有以下内容: (ns commentz.client (:require [om.core :as om :include-macros true] [om.dom :a
我有以下代码,我认为我做了一些根本错误的事情。 (defn world-view [data owner opts] (reify om/IInitState (init-st
Om 是 React 的 clojurescript 包装器,据说速度非常快,因为它利用了不变性。我不明白持久数据结构在这里有何帮助。 我所理解的是应用程序状态是一个原子。该状态被传递给返回虚拟 DO
我正在通过 Terraform 部署 AKS 集群。 我在我的 aks 资源 block 中设置了 oms_agent block : resource "azurerm_kubernetes_clu
我是一名优秀的程序员,十分优秀!