Хранитель файлов Элигри работает только один раз - PullRequest
0 голосов
/ 10 апреля 2020

У меня странная проблема. Я использую reactJS для создания внешнего интерфейса. У меня есть представление схемы на моей странице, чтобы показать что-то, и у меня есть кнопка, чтобы сохранить это представление схемы на клиенте p c. Также я использую плагин html2canvas для создания объекта canvas. Все хорошо, пока здесь. Странно то, что плагин file-saver работает только один раз после запуска приложения. Я имею в виду, когда я запускаю npm run build, приложение обычно запускается. После нажатия кнопки save открывается диалоговое окно сохранения файла, и я могу сохранить изображение на локальном компьютере p c. После этого кнопка save перестает работать. Когда я нажимаю на нее снова, диалог сохранения файла больше не появляется. Я проверил событие нажатия кнопки на console.log, оно работает. Я вижу логи.

Редактировать: Однажды я попробовал использовать разные браузеры и увидел, что только Opera затронула эту странную проблему. Edge и Chrome отлично работают.

Вот мои коды;

    import html2canvas from "html2canvas";
    import {saveAs} from 'file-saver';
    import 'canvas-toBlob';

    handleSnapshotClick(){
        const {diagramAreaId, snapshotFileName} = this.props;
        const elem = document.getElementById(diagramAreaId);

        if (elem) {
            html2canvas(elem).then((canvas) => {
                canvas.toBlob((blob) => {
                    console.log(blob); // I can see the blob on console
                    saveAs(blob, snapshotFileName);
                });
            });
        }
    }

<Button onClick={ this.handleSnapshotClick.bind(this)}>Save it !</Button>

Не могли бы вы мне помочь? Заранее спасибо.

...