Я использую Html2Canvas для создания двух изображений для предварительного просмотра: одно мобильное, другое настольное. Html2canvas правильно генерирует первое изображение предварительного просмотра, но второе выдает «TypeError: Cannot read свойство« removeAttribute »of null».
Если я удаляю handleGoMobile и handleGoDesktop (который изменяет состояние реагирующего компонента) после того, как 'then' генерируется второе изображение.
generatePreviewImgs(handleGoMobile, handleGoDesktop) {
let stage = document.querySelector(".stage");
handleGoMobile();
html2canvas(stage, {
onrendered: function (canvas) {
let a = document.createElement("a");
// toDataURL defaults to png, so we need to request a jpeg, then convert for file download.
a.href = canvas
.toDataURL("image/jpeg")
.replace("image/jpeg", "image/octet-stream");
a.download = "MobilePreview.jpg";
a.click();
return a;
},
}).then((canvas) => {
handleGoMobile();
handleGoDesktop();
html2canvas(stage, {
onrendered: function (canvas) {
let b = document.createElement("a");
// toDataURL defaults to png, so we need to request a jpeg, then convert for file download.
b.href = canvas
.toDataURL("image/jpeg")
.replace("image/jpeg", "image/octet-stream");
b.download = "DesktopPreview.jpg";
b.click();
},
});
// stage.appendChild(canvas);
});
},