我有一個遊戲的UI與各種組件,其中一些可以點擊突出顯示('積極'組件)。目前,每個組件的狀態都可以突出顯示Bool。但是,我想強制一次只突出一個組件 - 因此,如果點擊某個組件,則當前突出顯示的任何其他組件都必須更新爲未突出顯示。如何在Elm 0.17中一次突出顯示單個組件?
要做到這一點的一種方法是讓共同的祖先將一些消息廣播給所有的孩子,並且每個組件都可以處理這個消息並將其自動關閉 - 但是這看起來相當複雜和浪費。可能有1000個組件,只有兩個正在改變(一個突出顯示,一個突出顯示),爲什麼我應該發送並處理1000條消息?
有沒有更好的方法?
注意:這與Elm 0.17: How to subscribe to sibling/nested component changes非常相似。我認爲有一點不同的是,在這個問題中,只有少量的相關組件,而當其他組件發生變化時,總是發生變化。就我而言,在整個模型中的不同位置有很多組件,並且當其中一個更改很少時,或者其他更改都不會更改。