clojure-china 2019-07-30

JSX的一个标签里面放一个标签,是一个语法糖。

<A><B/></A> 和 [A [B]] 不是等价的

{RowComponent} <=> [:> RowComponent] ?

是等价的吗?

不是这个意思

前面是jsx的语法

后面是Reagent的

如果你要在reagent里面用 react组件,你确实需要 :>

<A><B/></A> 和 [A [B]] 不是等价的

[A [B]]里面的[B]是props

@doglooksgood 那这个怎么用Reagent表示出来呀?

应该是一个叫children的参数

你在react的里面,你写个组件,打印下props就知道了

我在 ListComponent 里面写了 (prn props) 在最上方,但是没有打印出来

我看了这个呀

你JS里面写个A,写个B 然后 <A><B/></A> 你打印A的props

你能看到里面的B在什么位置

我记得是在

children里面

没明白怎么弄 😥

我觉得解释这个成本很高,我更倾向于你不要这么搞

你为啥要在cljs里面引用一个js的组件,再用回js呢。。。

我大概只能这么和你解释,就是 JSX 是个语法糖。 Reagent 对应回 JS的时候对应的是JS,不是JSX

Reagent里面 :> 是 ReactDOM.createElement 的语法糖

如果你要 React 组件你有 reactify-component 如果你要 React 元素你有 as-element

听起来可能比较乱,但是没办法,你要做的这个事情就是来回 interop ...