clojure-china

tianshu 2019-07-30T09:43:10.023600Z

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

stevechan 2019-07-30T09:43:11.023700Z

@doglooksgood

tianshu 2019-07-30T09:43:37.024400Z

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

stevechan 2019-07-30T09:44:02.024800Z

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

stevechan 2019-07-30T09:44:10.025100Z

是等价的吗?

tianshu 2019-07-30T09:44:21.025400Z

不是这个意思

stevechan 2019-07-30T09:44:27.025700Z

前面是jsx的语法

stevechan 2019-07-30T09:44:34.026200Z

后面是Reagent的

tianshu 2019-07-30T09:44:54.026600Z

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

tianshu 2019-07-30T09:44:58.026800Z

:&gt;

stevechan 2019-07-30T09:45:06.027Z

是呀

tianshu 2019-07-30T09:45:18.027400Z

但是

tianshu 2019-07-30T09:45:22.027600Z

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

tianshu 2019-07-30T09:45:51.027900Z

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

stevechan 2019-07-30T09:45:58.028Z

stevechan 2019-07-30T09:46:16.028600Z

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

tianshu 2019-07-30T09:46:36.029Z

应该是一个叫children的参数

stevechan 2019-07-30T09:46:43.029200Z

tianshu 2019-07-30T09:47:08.030Z

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

stevechan 2019-07-30T09:48:56.031700Z

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

stevechan 2019-07-30T09:49:10.032100Z

我看了这个呀

tianshu 2019-07-30T09:50:12.032900Z

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

tianshu 2019-07-30T09:50:31.033400Z

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

tianshu 2019-07-30T09:50:41.033600Z

我记得是在

tianshu 2019-07-30T09:50:46.033900Z

children里面

stevechan 2019-07-30T09:51:09.034400Z

没明白怎么弄 😥

tianshu 2019-07-30T09:51:59.035200Z

😕

tianshu 2019-07-30T09:52:30.035900Z

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

tianshu 2019-07-30T09:54:13.036800Z

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

stevechan 2019-07-30T09:55:26.037200Z

😬

tianshu 2019-07-30T09:57:38.038500Z

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

tianshu 2019-07-30T09:58:16.039Z

Reagent里面 :&gt; 是 ReactDOM.createElement 的语法糖

tianshu 2019-07-30T09:59:26.039900Z

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

tianshu 2019-07-30T10:00:12.040900Z

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