0

假设我们有answer具有isOpen属性的组件。默认情况下isOpenfalse当用户单击 时,answer我们将 更改isOpentrue

我们正在显示答案列表。answer当用户点击 second 时,我们如何关闭 first answer

我正在考虑answersSync使用globalIsOpen = false.

4

1 回答 1

2

我建议跟踪在您的父组件中打开哪个答案,即列出答案的那个。然后你的父模板看起来像:

{{#each this.answers as |answer|}}
  <Answer
    @answer={{answer}}
    isOpen={{eq this.currentlyOpenAnswer answer}}
    {{on "click" (fn this.openAnswer answer)}}
  />
{{/each}}

(然后在父组件的 js 中有代码来跟踪currentlyOpenAnswer,响应openAnswer动作)

于 2021-11-22T16:37:30.357 回答