Как исправить ошибку Sentry User Feedback - невозможно прочитать свойство 'showReportDialog' из неопределенного - PullRequest
0 голосов
/ 18 мая 2019

Я пытался отобразить диалоговое окно «Обратная связь с пользователем» при нажатии определенной кнопки, но у меня возникли некоторые проблемы.Я успешно заставил его работать, когда я вызываю мой API, и в итоге получаю сообщение об ошибке, показанное первым.

Однако я создал кнопку, которая будет вызывать вызов Sentry.showReportDialog, но я получаю 'Cannot readсвойство 'showReportDialog' из неопределенного 'ошибка.Я попытался использовать Sentry.capture Message / Exception / Error для генерации eventId, но я все еще получил ту же ошибку.Это мой текущий код, который не работает, но я изменил его приличное количество и все еще получал ту же неопределенную ошибку для showReportDialog, даже когда я попробовал метод, который работал с моим вызовом API.Это веб-приложение выполняется с использованием Ember.js v3.5.1, и в моем package.json зависимость для sentry равна "@ sentry / browser": "^ 4.5.3"

// works
try {
    $('.ember-application').addClass('request-loading');
    this.model.setProperties(properties);
    return yield this.model.save();
} catch (err) {
    // Get feedback from user through sentry
    Sentry.init({
        dsn:'https://ec08003a76fa4b6e8f111237ed3ed8e1@sentry.io/1369772',
        beforeSend(event) {
            if (event.exception) {
            Sentry.showReportDialog({ eventId: event.event_id });
        }
        return event;
    },
});

}

// does not work
try {
    throw new Error();
} catch (e) {
    var eventId = yield Sentry.captureException(e, function(sendErr, eventId) {
        // This callback fires once the report has been sent to Sentry
        if (sendErr) {
            console.error('Failed to send captured exception to Sentry');
        } else {
            console.log('Captured exception and send to Sentry successfully');
            console.log(eventId);
        }
    });
    console.log(eventId);
    Sentry.showReportDialog({ eventId: eventId });
}

1 Ответ

1 голос
/ 21 мая 2019

Следующий код работал на меня

try {
        throw new Error();
    } catch (e) {
        Sentry.init({
            dsn: 'https://ec080033425613e7ed3ed8e1@sentry.io/1369772',
            beforeSend(event) {
                return event;
            },
        });
        var eventId = yield Sentry.captureException(e, function() {});
        Sentry.showReportDialog({
            eventId: eventId,
    });
}
...