Это мой компонент, который создает стиль ввода флажка. Все работает как надо , но есть это сообщение об ошибке, и я не знаю почему.
'Uncaught Invariant Violation: целевой контейнер не является элементом DOM.'
Stackoverflow требует, чтобы я отправил больше комментариев перед отправкой этого вопроса, но у меня действительно нет больше информации, чтобы установить здесь ... Так что я опубликую с этим вопросом версию того, что я использую в стороне.
Версия React: React v16.8.3
Версия React DOM: React v16.8.3
Вавилон: https://unpkg.com/babel-standalone@6.15.0/babel.min.js
/* global ReactDOM, React */
class Switch3dPermissao extends React.Component {
constructor(props) {
super(props);
this.state = { checked: props.defaultChecked };
}
toggle = () => {
this.setState({
checked: !this.state.checked
})
}
render() {
return (
<div>
<label className={'mr-3 switch switch-3d switch-'+this.props.type}>
<input type="hidden" name={this.props.id} value={this.props.offvalue} />
<input
id={this.props.id}
name={this.props.id}
value={this.props.value}
className="switch-input"
type="checkbox"
checked={ this.state.checked ? true : false }
onChange={ this.toggle }
/>
<span className="switch-label"></span>
<span className="switch-handle"></span>
</label>
<label htmlFor={ this.props.id } className="cursor-pointer" dangerouslySetInnerHTML={{ __html: this.props.html }}></label>
</div>
);
}
}
// Elementos com esta classe
var els = document.getElementsByClassName('switch-3d-permissao');
for (var i in els) {
var element = els[i];
// Is default checked?
var isChecked = false;
var value = '1';
if (element.attributes !== undefined) {
if (element.attributes.checked !== undefined) {
isChecked = true;
}
if (element.attributes.value !== undefined) {
value = element.attributes.value.textContent;
}
}
var id = null;
var type = 'danger';
var offvalue = '0';
if (element.dataset !== undefined) {
// data-id (The form checkbox id)
if (element.dataset.id !== undefined) {
id = element.dataset.id;
}
// data-type warning | danger | primary | info | success
if (element.dataset.type !== undefined) {
type = element.dataset.type;
}
// Valor para quando o checkbox nao esta checado
if (element.dataset.offvalue !== undefined) {
offvalue = element.dataset.offvalue;
}
}
ReactDOM.render(<Switch3dPermissao id={id} type={type} html={element.innerHTML} defaultChecked={isChecked} value={value} offvalue={offvalue} />, element)
}