this.afterRefresh() не является функцией

Привет! Давно не заглядывал к нашим плагинам. После обновления до версии 2.4.0 beta возникли ошибки при загрузке. Класс composer-editor.js завершается с ошибкой «this.afterRefresh() is not a function». Мне кажется, это может быть старое действие в классе компонента Ember, но я могу ошибаться. Ничего об этом не нашёл. Неужели это какой-то устаревший код, или я использую устаревший API? Спасибо.

У вас есть эта проблема в безопасном режиме?

Проблема возникает при установленных у меня плагинах, поэтому запуск в безопасном режиме не помогает найти её причину. Этот конкретный плагин использует компонент composer-editor в шаблонном файле.

Я проверил версию v2.3.6 и поискал afterRefresh. Похоже, что в composer-editor.js он используется иначе: this.afterRefresh($preview); вместо this.sendAction(‘afterRefresh’, $preview);. По крайней мере, это, судя по всему, и есть проблема.

Из вашего поста не было ясно, считаете ли вы, что проблема исходит от плагинов или из ядра.

Без доступа к коду мало что можно посоветовать. Но вы правы: sendAction устарел и больше не должен использоваться; теперь действия — это простые замыкания.

Хорошо, так что просто вызов действия как функции — это теперь правильный способ? Тогда, похоже, мне придётся пересмотреть свой код. Я думал, что, возможно, это был баг.

Да, вызов в качестве функции — это ожидаемый способ использования.

Я не определил параметр afterRefresh в тегах composer-editor в файле шаблона. Похоже, это обязательно.