Создание класса с объявленными атрибутами в Safari не работает - PullRequest
0 голосов
/ 12 марта 2019

У меня есть фрагмент кода ниже, и я не могу заставить его работать в Safari.

class handlePdf {
    url             = null;
    wrapper_element = null;
    pdfDoc          = null;
    pageNum         = 1;
    pageRendering   = false;
    pageNumPending  = null;
    scale           = 0.55;
    canvas          = null;
    ctx             = null;
    pdfjsLib        = null;
    parent          = this;

    constructor(options) {
      this.url = options.url;
      this.wrapper_element = options.wrapper_element;

      this.canvas = document.getElementById(this.wrapper_element),
      this.ctx = this.canvas.getContext('2d');
    }
...

Safari выдает ошибку при первом "=", я прочитал все документы, и это кажется правильным. Я застрял, кто-нибудь может указать мне в каком-то направлении?

1 Ответ

0 голосов
/ 12 марта 2019

Поскольку объявления полей класса не являются стандартными, вы можете использовать babel для переноса вашего кода
Или не использовать их и не реорганизовать ваш класс в нечто вроде:

class handlePdf {
    constructor(options) {
      this.init()
      this.url = options.url;
      this.wrapper_element = options.wrapper_element;

      this.canvas = document.getElementById(this.wrapper_element),
      this.ctx = this.canvas.getContext('2d');
    }

    init() {
      this.url             = null;
      this.wrapper_element = null;
      this.pdfDoc          = null;
      this.pageNum         = 1;
      this.pageRendering   = false;
      this.pageNumPending  = null;
      this.scale           = 0.55;
      this.canvas          = null;
      this.ctx             = null;
      this.pdfjsLib        = null;
      this.parent          = this;
    }
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...