Fork me on GitHub
#clojure-china
<
2019-07-30
>
tianshu09:07:10

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

tianshu09:07:37

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

hulunote09:07:02

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

hulunote09:07:10

是等价的吗?

tianshu09:07:21

不是这个意思

hulunote09:07:27

前面是jsx的语法

hulunote09:07:34

后面是Reagent的

tianshu09:07:54

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

tianshu09:07:22

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

tianshu09:07:51

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

hulunote09:07:16

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

tianshu09:07:36

应该是一个叫children的参数

tianshu09:07:08

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

hulunote09:07:56

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

hulunote09:07:10

我看了这个呀

tianshu09:07:12

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

tianshu09:07:31

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

tianshu09:07:41

我记得是在

tianshu09:07:46

children里面

hulunote09:07:09

没明白怎么弄 😥

tianshu09:07:30

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

tianshu09:07:13

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

tianshu09:07:38

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

tianshu09:07:16

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

tianshu09:07:26

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

tianshu10:07:12

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