Clojure :单击“渲染为文本”

Clojure :单击“渲染为文本”,clojure,clojurescript,reagent,Clojure,Clojurescript,Reagent,我的ClojureScript函数: (defn节点函数[节点] [: [:div(节点:名称){:点击#(prn“hi”)}]] 在dom中呈现为html文本: My Documents{:on-click #object[Function]} 我的代码看起来与完全相同:单击我在网上找到的示例 为什么编译器认为这是文本而不是函数 谢谢。我不确定您的项目的其余部分是如何构造的,但它看起来像是您试图渲染的div的属性映射和内部html被转置了 呈现模型以这种方式出现的原因是,Regent看到:

我的ClojureScript函数:

(defn节点函数[节点]
[:
[:div(节点:名称){:点击#(prn“hi”)}]]
在dom中呈现为html文本:

My Documents{:on-click #object[Function]}
我的代码看起来与
完全相同:单击我在网上找到的示例

为什么编译器认为这是文本而不是函数


谢谢。

我不确定您的项目的其余部分是如何构造的,但它看起来像是您试图渲染的
div的属性映射和内部html被转置了

呈现模型以这种方式出现的原因是,Regent看到
:div
向量的第一个子元素不是映射(它大概是一个字符串),并将所有剩余子元素解释为html中发出的
div
的预期附加子元素,同时对它们进行字符串化

您可能正在寻找这样定义的函数:

(defn节点函数[节点]
[:div{:单击#(prn“hi”)}(:name节点)])

我删除了
位,因为在这个组件中只有一个
div
,所以这里不需要它


我将
节点
:name
进行了转换,使其更安全,并使名称的查找更清楚地成为一种查找。

我不确定项目的其余部分是如何构造的,但它看起来像是试图渲染的
div的属性映射和内部html被转换了

呈现模型以这种方式出现的原因是,Regent看到
:div
向量的第一个子元素不是映射(它大概是一个字符串),并将所有剩余子元素解释为html中发出的
div
的预期附加子元素,同时对它们进行字符串化

您可能正在寻找这样定义的函数:

(defn节点函数[节点]
[:div{:单击#(prn“hi”)}(:name节点)])

我删除了
位,因为在这个组件中只有一个
div
,所以这里不需要它


我将
节点
:name
进行了转换,使其更为安全,并使名称的查找更为清晰。

您可以链接到下面的示例吗?:)当然可以--在c上搜索
。好的,看起来就像你说的那样。我不熟悉
[:
,但它做什么/为什么需要它?.hmm,现在我掌握了这一点,但这可能是因为您将节点用作函数名和参数,而编译器在某个地方会感到困惑吗?另一个问题中的文档如何?如您所见,道具映射(对应于React道具)始终是hiccup表单的第一个参数。实际上,这里不太清楚您想要什么,特别是因为您的函数和它的参数都有相同的名称。您可以链接到下面的示例吗?:)当然可以--搜索
on-c
。好的,正如您所说的,看起来不错。我不熟悉
[:
虽然它是做什么的/为什么需要它?.hmm,现在我明白了,但这可能是因为您将节点用作函数名和参数,而编译器在某些地方会感到困惑吗?其他问题中的文档如何?正如您所见,道具映射(对应于React道具)始终是hiccup表单的第一个参数。实际上,这里不太清楚您想要什么,特别是因为您的函数及其参数的名称相同。如果需要渲染多个元素而没有包含元素,则试剂中的兴趣点
会生成一个for。您是正确的,不需要他re,但是如果他的组件有多个div,他就需要一个。谢谢,很高兴知道!我已经相应地编辑了答案。如果需要渲染多个元素而不包含元素,试剂中的兴趣点
会生成一个for。您是对的,这里不需要它,但是如果他的组件有多个div,他就需要一个。Thanks,很高兴知道!我已经相应地编辑了答案。