2016-10-17 2 views
1

В настоящее время работает над реализацией реагирующих уведомлений, но работает с ошибкой, которая говорит Cannot read property 'preventDefault' of undefined, что, я считаю, означает, что событие, переданное в _addNotification, не определено.Реагировать-уведомления не могут быть найдены

_handleSuccess: function(data, status, jqXHR) { 
    this._addNotification() 
    this.setState({ 
    errors: {}, 
    loading: false 
    }); 
}, 
_notificationSystem: null, 

_addNotification: function(event) { 
    event.preventDefault() 
    this._notificationSystem.addNotification({ 
    message: 'Notification message', 
    level: 'success', 
    position: 'bc' 
    }); 
}, 

_componentDidMount: function() { 
    this._notificationSystem = this.refs.notificationSystem; 
}, 

_getNotificationSystemInstance: function() { 
    return this 
}, 

ответ

2

Проблема здесь это то, что вы вызываете _addNotification без какого-либо параметра, эту функцию он ожидает в event параметров.

Мне кажется, что вы загружаете данные из службы API, если это так, вы не имеете event объект для этого случая, поэтому вы либо удалить event.preventDefault() или проверить, если event существует перед вызовом функции preventDefault ,

_addNotification: function(event) { 
     event && event.preventDefault(); // <--- Check if event exist! 
     this._notificationSystem.addNotification({ 
     message: 'Notification message', 
     level: 'success', 
     position: 'bc' 
     }); 
}, 

В случае, если вы звоните _addNotification с помощью кнопки или ссылки, вам нужно позвонить preventDefault. Поэтому я бы рекомендовал добавить проверку вместо ее удаления.

Удачи вам!

+0

Спасибо! Это решает проблему, однако в ней представлена ​​следующая проблема: «Невозможно прочитать свойство addNotification» null, что означает, что он не добавит уведомления в нуль _notificationSystem. Однако это, похоже, противоречит документации [здесь] (https://github.com/igorprado/react-notification-system#creating-a-notification). Не уверен, что это также быстрое решение или заслуживает собственного вопроса. –

Смежные вопросы