Некоторые плагины JQuery не только добавляют поведение к узлам DOM, но и изменяют их. Например, Bootstrap Switch получаетсяИспользование плагинов JQuery, которые преобразуют DOM в React Components?
<input type="checkbox" name="my-checkbox" checked>
в нечто вроде
<div class="bootstrap-switch bootstrap-switch-wrapper bootstrap-switch-on bootstrap-switch-large bootstrap-switch-animate">
<div class="bootstrap-switch-container">
<span class="bootstrap-switch-handle-on bootstrap-switch-primary">ON</span>
<label class="bootstrap-switch-label"> </label>
<span class="bootstrap-switch-handle-off bootstrap-switch-default">OFF</span>
<input type="checkbox" name="download-version" checked="" data-size="large" data-on-text="3" data-off-text="2.0.1">
</div>
</div>
с
$("[name='my-checkbox']").bootstrapSwitch();
который не джайв с React:
Uncaught Error: Invariant Violation: findComponentRoot(..., .0): Unable to find
element. This probably means the DOM was unexpectedly mutated (e.g., by the
browser), usually due to forgetting a <tbody> when using tables or nesting <p> or
<a> tags. ...<omitted>...`.
Существует ли рекомендованная методика включения этих плагинов в компоненты React? Или они принципиально нарушают предположения Реагента и не могут с ним работать?
Благодарим за обстоятельный разговор! – tnunamak
Если родительские реендеры, ребенок будет переигрывать, сдуть манипуляции с JQuery DOM. Возможно, используйте 'componentDidUpdate' вместо или так же как' componentDidMount' –
Отличный ответ! За последние несколько месяцев я очень глубоко вписался в React, и я думаю, что ваша рекомендация «повторить функциональность» правильная. Невероятно, сколько плагинов jQuery React для меня устарело, поскольку реализация одной и той же функции часто короче и проще кода, чем плагин jQuery для настройки. например если я хочу показать поле типа «XXX символов слева», тривиально с состояниями, чтобы положить мой рендер(): '