私はかなり簡単だと思うものを実装するのに苦労しています。子コンポーネントにワンタイムイベントを送信する
私のVueアプリケーションでは、リストをループします。各リストアイテムは子コンポーネントです。各リスト項目には、展開/折りたたみボタンがあります。それはうまくいきますが、私は親からのすべての未処理アイテムを閉じることができるようにしたいと思っています。
拡大/縮小は、私が代わりにいるisOpenと渡す小道具の計算されたプロパティを使用して試してみましたが、その問題は、それがよりANのように行動する必要があり、私だと思いれるisOpen
ので
<div v-if="isOpen">Something here</div>
という変数を介して制御されますイベント。
オープンリストの項目を3つ考えます。リストアイテムが小道具によって制御されていて、false
に設定するとアイテムが閉じられると、アイテムが再び開かれたときに小道具はまだfalse
なので、もう一度は機能しません。私はそれを親に戻すことができますが、間違っているようです。
これを行うにはどうすればよいでしょうか?
なぜあなたが設定されますあなたの内側のコンポーネントに 'open'と' close'メソッドを追加しない/ 'isOpen'フラグを解除しますか?それぞれのコンポーネントから 'open'メソッドを呼び出すだけです。 – Cristy
これは単に小道具を使用することで達成できるはずですが、コンポーネントが直接関係していない場合は、常にイベントバスを使用できます。 https://alligator.io/vuejs/global-event-bus/ –
[イベントバス](https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication)をそれぞれに渡します子。バス上の「close」イベントに応答するように子供を設定します。親がバス上でcloseイベントを発行すると、すべてが応答します。 –