Html2Canvas: невозможно прочитать свойство 'removeAttribute' с нулевым значением - PullRequest
0 голосов
/ 03 апреля 2020

Я использую 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);
    });
  },
...