我试图修复内存泄漏问题,但当我在 Chrome DevTools 中拍摄堆快照或检查实时分配时,页面崩溃并显示“噢,快照!” 带有错误代码 STATUS_ACCESS_VIOLATION 的消息。
我使用的是 Chrome 版本 94.0.4606.61(官方版本)(64 位)。
我在用 Ember 1.13.15.
我有一个对象数组(包含嵌套对象),它使用每个循环进行迭代并传递给子组件。
//parent.hbs
{{#each configData as |item index|}}
{{ my-child
childId=(concat item.name index)
childName= item.name
childColor=item.color
childEnabled=item.enabled
actionUpdateParent='action1'
}}
Run Code Online (Sandbox Code Playgroud)
以及组件内的以下观察者
//parent.js
configDataObserver: function(){
var configData = this.get('configDataFromSource');
this.set( 'configData' , configData );
}.observes('configDataFromSource'),
Run Code Online (Sandbox Code Playgroud)
现在,每当configData数组中的任何对象更新时,each循环都会遍历整个数组,并且所有子组件都会重新绘制,从而导致严重的性能问题。
我发现了类似的问题,但没有一个提供明确的解决方案。请帮忙。