Cycle.js DOM 驱动程序是否与 JSX 一起用于转换?
Does Cycle.js DOM driver works with JSX for transforms?
我在一段循环代码的 DOM 源代码之上有一个非常简单的转换:
const tt_dom$ = tt_slider.DOM
.map(vn => {vn.sel += '.tt';console.log(9870, vn); return vn})
现在,如果组件(即 tt_slider
)指定没有 JSX 的 HTML 代码,比如
div('.myclass', [])
然后我从我的转换中得到了想要的输出:
<div class="myclass tt">
但是如果我使用 JSX 指定它:
<div className="myclass">
我刚刚得到
<div class="myclass">
我做错了什么吗?这是标准行为吗?或者可能是 Cycles 某处的错误?
谢谢
Snabbdom 中的 className
道具会覆盖所有其他 css 类(在您的情况下是 sel
)。您的超标代码起作用的原因是您不使用 props
而是使用 sel
。
如果将其更改为 div({ props: { className: 'myClass' }}, [])
,您将看到同样的问题。
我已经为 snabbdom 打开了一个错误报告,但它似乎是预期的行为。
您可以通过使用 className
属性进行转换来解决您的问题。
我在一段循环代码的 DOM 源代码之上有一个非常简单的转换:
const tt_dom$ = tt_slider.DOM
.map(vn => {vn.sel += '.tt';console.log(9870, vn); return vn})
现在,如果组件(即 tt_slider
)指定没有 JSX 的 HTML 代码,比如
div('.myclass', [])
然后我从我的转换中得到了想要的输出:
<div class="myclass tt">
但是如果我使用 JSX 指定它:
<div className="myclass">
我刚刚得到
<div class="myclass">
我做错了什么吗?这是标准行为吗?或者可能是 Cycles 某处的错误?
谢谢
Snabbdom 中的 className
道具会覆盖所有其他 css 类(在您的情况下是 sel
)。您的超标代码起作用的原因是您不使用 props
而是使用 sel
。
如果将其更改为 div({ props: { className: 'myClass' }}, [])
,您将看到同样的问题。
我已经为 snabbdom 打开了一个错误报告,但它似乎是预期的行为。
您可以通过使用 className
属性进行转换来解决您的问题。