我有一个游戏的UI与各种组件,其中一些可以点击突出显示('积极'组件)。目前,每个组件的状态都可以突出显示Bool。但是,我想强制一次只突出一个组件 - 因此,如果点击某个组件,则当前突出显示的任何其他组件都必须更新为未突出显示。如何在Elm 0.17中一次突出显示单个组件?
要做到这一点的一种方法是让共同的祖先将一些消息广播给所有的孩子,并且每个组件都可以处理这个消息并将其自动关闭 - 但是这看起来相当复杂和浪费。可能有1000个组件,只有两个正在改变(一个突出显示,一个突出显示),为什么我应该发送并处理1000条消息?
有没有更好的方法?
注意:这与Elm 0.17: How to subscribe to sibling/nested component changes非常相似。我认为有一点不同的是,在这个问题中,只有少量的相关组件,而当其他组件发生变化时,总是发生变化。就我而言,在整个模型中的不同位置有很多组件,并且当其中一个更改很少时,或者其他更改都不会更改。