如何使通过{{component}}助手呈现的组件独立于

问题描述 投票:0回答:1

我有给定模板的组件的几个实例(我们称它为<Row />):

    {{component @resultComponentName result=@result}}

我从<Row />组件像这样调用<Terminal />组件:

{{#each @rows as |row|}}
  <Row @result={{row.result}} @confirm={{fn this.confirm}} @resultComponentName={{this.resultComponentName}}/>
{{/each}}

<Terminal />组件具有属性:

@tracked resultComponentName;

[在confirm()组件中的操作<Terminal />中处理:

if (cmd.resultComponentName) {
  this.resultComponentName = cmd.resultComponentName;
} else {
  this.resultComponentName = 'result-component';
}

其中cmd是一些具有属性的Ember模型:

  @tracked resultComponentName = 'other-result';

现在我只想在一个实例中更改@resultComponentName,但是当我更改@resultComponentName时,所有组件<Row />实例都将重新呈现。

如何防止这种行为并使每个实例独立?预先感谢!

ember.js components ember-octane
1个回答
0
投票
您的问题是@tracked resultComponentName;存在于您的Terminal组件中,因此整个列表仅存在一次。
© www.soinside.com 2019 - 2024. All rights reserved.