Работает ли драйвер Cycle.js DOM с JSX для преобразований?

У меня есть очень простое преобразование поверх источника DOM в циклическом фрагменте кода:

const tt_dom$ = tt_slider.DOM
   .map(vn => {vn.sel += '.tt';console.log(9870, vn); return vn})

Теперь, если компонент (т.е. tt_slider) указывает код HTML без JSX, скажем

div('.myclass', [])

Затем я получаю желаемый результат от своего преобразования:

<div class="myclass tt">

Но если я укажу это с помощью JSX:

 <div className="myclass">

я просто получаю

<div class="myclass">

Я делаю что-то неправильно? Это стандартное поведение? Или, может быть, ошибка где-то в Cycles?

Спасибо


person Tiago Antao    schedule 21.12.2017    source источник


Ответы (1)


Опция className в Snabbdom перезаписывает все остальные классы css (в вашем случае sel). Причина, по которой ваш код гиперскрипта работает, заключается в том, что вы используете не props, а вместо этого sel.

Если вы измените его на div({ props: { className: 'myClass' }}, []), вы увидите ту же проблему. Я открыл отчет об ошибке для snabbdom, но похоже, что это преднамеренное поведение.

Вы можете решить свою проблему, заставив преобразование использовать реквизит className.

person Jan van Brügge    schedule 22.12.2017