Ember: Assertion Failed: EmberObject.create больше не поддерживает определение вычисляемых свойств - PullRequest
0 голосов
/ 14 июня 2019

Я был на Ember версии 2.16, и мы обновились до 3.8.После обновления версии я вижу эту ошибку, но не могу понять, откуда эта ошибка.В каких случаях я получу эту ошибку.Я видел один из постов:

Динамические вычисляемые свойства в Ember.JS устарели?

Но я не смог понять то же самое в моем коде.

enter image description here

1 Ответ

1 голос
/ 14 июня 2019

Полагаю, вы не обновляли шаг за шагом, а сразу перешли с 2.18 на 3.8, не так ли?В 3.2 было добавлено осуждение, что вычисляемые свойства должны быть определены с использованием defineProperty, если объект уже создан.Функциональность была удалена в 3.5.Динамическое задание вычисляемого свойства с использованием set или свойства объекта, переданного в EmberObject.create(), больше не поддерживается.

Это устарело в 3.2 и удалено в 3.5:

import Object as EmberObject, { computed } from '@ember/object';

EmberObject.create({
  foo: computed('bar', function() {
    // ...
  })
});
EmberObject.extend({
  init() {
    this._super(...arguments);

    this.set('foo', computed('bar', function() {
      //  ...
    }));
  }
});

Вы должны перейти на:

import Object as EmberObject, { computed } from '@ember/object';

EmberObject.extend({
  foo: computed('bar', function() {
    // ...
  })
}).create();
import { defineProperty } from '@ember/object';

EmberObject.extend({
  init() {
    this._super(...arguments);

    defineProperty(this, 'foo', computed('bar', function() {
      //  ...
    }));
  }
});

Этот старый синтаксис не был публичным API.Хотя Ember не вносит серьезных изменений в общедоступный API, частные API могут быть изменены в любое время.Если основная команда считает их широко используемыми, они устаревают и удаляются после следующего выпуска LTS.Так было и здесь.

Обычно безопаснее и проще сделать шаг к переходу с LTS на LTS.В этом случае вы не пропустите полезные сообщения об устаревании.

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

...