我有一个称为Runner的Angular组件,并且在同一屏幕上有三个实例。
它具有两个链接的选择,第一个被称为“模型”,第二个被称为“定义”,每个模型可能具有多个定义。
OnInit我触发了一个加载所有模型的效果(触发了3次,每个组件实例触发一次,我不确定是否可以)并将其存储在存储区中(在同一“段”中) “,一组模型)。
ngOnInit() {
this.store.dispatch(new SimulationActions.LoadModels());
this.models = this.store.pipe(select(fromSimulator.getModels));
}
问题是,如果我在第一个实例的第一个选择中选择模型A,那么我将在树实例的选择中获得A定义,因为它触发相同的效果并在成功中使用相同的选择器< / p>
modelChange() {
this.store.dispatch(new
SimulationActions.LoadDefinitions(this.selectedModel));
this.definitions =
this.store.pipe(select(fromSimulator.getDefinitions));
}
如果在第二个实例中选择模型B,则将在树实例中为模型B定义,在第一个实例中,将选择模型A,但有B个子对象。
组件完全相同,除了这个事物影响/存储问题之外,它们用于比较,因此不能为每个实例编写不同的组件。
任何人都可以给我一点启发。
谢谢。
答案 0 :(得分:1)
您必须以某种方式区分选择器和效果。
为了达到效果,您必须创建不同的动作或使用有效负载。
对于选择器,它们是相同的,您将不得不使用不同的选择器或selector with props。