Итак, у меня проблема с ванильным React.У меня есть эта строка кода в функции ready()
:
var current = this;
React.createElement(
"iframe",
{id: "iframeController",
ref: "iframe",
src: "data:text/html;charset=utf-8," + escape(notification.description),
onLoad: current.iframeLoaded(this)}
)
уведомление.description от сопоставления, которое я делаю для объекта в this.state.notifications
и этой функцииследовать ему
iframeLoaded(iframe) {
if(iframe) {
iframe.height = iframe.contentWindow.document.body.scrollHeight + "px";
}
}
Однако, если я console.log элемента (iframe) в iframeLoaded, он возвращается как ноль.То же самое, если я получаюElementById, за исключением того, что он не определен.
Я сделал setTimeout, чтобы посмотреть, есть ли проблема с обновлением компонента, и оказалось, что это так.Так что onLoad даже в Chrome запускается до того, как у src есть время для рендеринга.
Я пытаюсь получить высоту, чтобы я мог установить ее в окне, позволяя изменить ее размер и принять полную высоту.фрейма, который я получаю.
Может кто-нибудь дать мне какие-нибудь советы о том, как это сделать?