У меня странная проблема. Я использую 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>
Не могли бы вы мне помочь? Заранее спасибо.