Я использую React 15 в Chrome и хочу подключить прослушиватель событий для обнаружения изменений в родительском контейнере.Осмотрев варианты, я наткнулся на ResizeObserver и не уверен, как заставить его работать в моем проекте.
В настоящее время я помещаю его в свой конструктор, но он, похоже, не печатает никакого текста, и яя не уверен, что положить в observe
вызов.
class MyComponent extends React.Component {
constructor(props) {
super(props);
const resizeObserver = new ResizeObserver((entries) => {
console.log("Hello World");
});
resizeObserver.observe(somethingGoesHere);
}
render() {
return (
<AnotherComponent>
<YetAnotherComponent>
</YetAnotherComponent>
<CanYouBelieveIt>
</CanYouBelieveIt>
<RealComponent />
</AnotherComponent>
);
}
}
В идеале, я также не хочу обернуть RealComponent
в div
и присвоить этому div
идентификатор.Есть ли способ прямого доступа к RealComponent
?
Моя цель - наблюдать за любыми изменениями размера RealComponent
, но MyComponent
тоже подойдет.Что я должен положить в слот somethingGoesHere
?
РЕДАКТИРОВАТЬ:
Ради того, чтобы что-то заработало, я укусил пулю и обернул тег div
вокруг RealComponent
.Затем я дал ему идентификатор <div id="myDivTag">
и изменил вызов observe
:
resizeObserver.observe(document.getElementById("myDivTag"));
Однако при запуске этого я получаю:
Uncaught TypeError: resizeObserver.observeне является функцией
Любая помощь будет принята с благодарностью.