Shr*_*hah 3 ember.js ember.js-3
我使用的是 Ember 2.16 版本,我们升级到了 3.8。版本升级后,我看到此错误,但无法弄清楚错误来自何处。在什么情况下我会收到此错误。我看到其中一篇帖子:
但在我的代码中无法弄清楚相同的内容。
我猜你不是一步一步升级的,而是直接从2.18升级到3.8的,是吗?defineProperty在 3.2 中添加了一项弃用,即如果对象已创建,则必须使用定义计算属性。该功能在 3.5 中被删除。不再支持set使用传递到的对象上的属性动态设置计算属性。EmberObject.create()
这已在 3.2 中弃用并在 3.5 中删除:
import Object as EmberObject, { computed } from '@ember/object';
EmberObject.create({
foo: computed('bar', function() {
// ...
})
});
Run Code Online (Sandbox Code Playgroud)
EmberObject.extend({
init() {
this._super(...arguments);
this.set('foo', computed('bar', function() {
// ...
}));
}
});
Run Code Online (Sandbox Code Playgroud)
您应该迁移到:
import Object as EmberObject, { computed } from '@ember/object';
EmberObject.extend({
foo: computed('bar', function() {
// ...
})
}).create();
Run Code Online (Sandbox Code Playgroud)
import { defineProperty } from '@ember/object';
EmberObject.extend({
init() {
this._super(...arguments);
defineProperty(this, 'foo', computed('bar', function() {
// ...
}));
}
});
Run Code Online (Sandbox Code Playgroud)
这种旧语法不是公共 API。虽然 Ember 不会对公共 API 进行重大更改,但私有 API 可能随时更改。如果核心团队认为它们被广泛使用,那么它们将在下一个 LTS 版本后被弃用并删除。这里就是这种情况。
通常,从 LTS 逐步升级到 LTS 更安全、更容易。在这种情况下,您不会错过有用的弃用消息。
还请查看弃用指南中的条目,尽管它有点技术性,但我认为应该有更多现实世界的示例。
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |