Необходимо поместить в React-компонент HTML полученный извне и произвести с ним ряд манипуляций (навесить обработчики на ссылки). Для этого сделан простой компонент (см. ниже). Само навешивание обработчиков для простоты удалил из примера. Проблема в том, что при печати в консоль будет непустой HTMLCollection link но всегда нулевая длина link.length. Это признак того что в DOM элементы еще не помещены. Но по идее componentDidMount вызывается после рендеринга компонента и все уже должно быть в DOM. В итоге навесить обработчики не получается. Почему так происходит и каким образом навесить-таки обработчики?
class HTML extends React.Component {
componentDidMount() {
var root = document.getElementById(this.props.id);
var link = root.getElementsByTagName('a');
console.dir(link); // several elements here
console.log('LENGTH: ' + link.length); // but length always 0
}
render() {
return (
<div id={this.props.id} className='html' dangerouslySetInnerHTML={{__html: this.props.data}} />
);
}
}
После рытья документации и экспериментов переписал все на использование Callback Refs С этим механизмом все заработало.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На сайте есть Slick Slider с функцией Slider Syncing, то есть, когда два слайдера синхронизированные и при переключении слайдов одного из них, переключаются...
Хочу чтобы координаты определялись относительно моего контейнера, но при подставлении в формулу eoffsetX, каждый второй тик элемент отправляется...
Подскажите пожалуйста, как добиться изменения height textarea на auto в зависимости от контентаПри нажатии на open должен быть виден весь текст, который...
Есть C++ класс такого видаУ него есть приватное поле window