请参阅完整实施,并在此处提供已接受答案的建议:https://github.com/afcastano/elm-nested-component-communication
================================================== ===============
我有一个父组件有两个孩子.见工作示例
使用Elm Architecture,当左侧孩子的任何计数器发生变化时,如何更新正确的孩子?
目前,我让父组件读取左子模型的嵌套属性并将其设置为正确的子模型,但在我看来,父母不应该对子项的内部结构了解太多.
这些是模型和消息:
type alias MainModel =
{ counterPair : CounterPair
, totals: Totals
}
type alias CounterPair =
{
greenCounter : Counter
, redCounter : Counter
}
type alias Counter =
{
value : Int
, totalClicks : Int
}
type alias Totals =
{
totalRed : Int
, totalGreen : Int
, combinedTotal : Int
}
type MainMsg
= UpdateCounterPair CounterPairMsg
| UpdateTotals TotalsMsg
type alias RedVal = Int …Run Code Online (Sandbox Code Playgroud) 有一项任务需要每天由两个人执行,并且有一个团队可用。
这个想法是将两个不同的人分配给该任务,每种可能的组合至少分配一次。
此外,理想情况下,应尽可能从前一个分配日开始分配任何特定人员。
例子:
给定球队:A、B、C、D、E、F
该任务的时间表可以是:
Day 1 = A, D
Day 2 = B, E
Day 3 = C, F
Day 4 = A, E
Day 5 = B, F
Day 6 = C, D
Day 7 = A, F
Day 8 = B, D
Day 9 = C, E
Day 10 = E, D
Day 11 = B, E
Day 12 = C, A
...
Run Code Online (Sandbox Code Playgroud)
请注意,相同的字母被分配与前一次有一定距离。例如,A 分配给第 1、4、7、12 天,D 分配给第 1、6、8、10 天。另请注意,所有可能的组合都存在。
目前,我可以“手动”对小团队(6 - 8 人)的配对进行组合和排序,但对于较大的团队,我无法想出一种算法。
有什么算法可以帮助我吗?
奖励积分: …