我的方案是为同一组件创建不同的独立状态,因此当一个组件发生任何变化时,不会影响其他组件状态。
我面临的问题是,每当我更改一个组件中的任何内容时,它也会更新其他组件状态
在我的情况下,我正在创建一个数据选项卡,在其中我使用不同的对象数据数组动态加载相同的组件。因此,如果我更新一个选项卡中的任何数据,则另一个选项卡不应受到影响。
NgRx 可以吗?
我的方案是为同一组件创建不同的独立状态,因此当一个组件发生任何变化时,不会影响其他组件状态。
我面临的问题是,每当我更改一个组件中的任何内容时,它也会更新其他组件状态
在我的情况下,我正在创建一个数据选项卡,在其中我使用不同的对象数据数组动态加载相同的组件。因此,如果我更新一个选项卡中的任何数据,则另一个选项卡不应受到影响。
NgRx 可以吗?
我在Management different slices of the same NgRx state中写下了不同的方法。
您必须通过他们的 id 来存储状态:
{
"counters": {
"31cd7f19-559e-4d77-8899-97797368b8c4": {
"count": -1
},
"ca6184a4-10cf-473c-b1f6-6bb73ab20679": {
"count": 4
},
"1caf0bc3-1414-4221-ae1d-a94f99ced451": {
"count": 0
}
}
}
是的,这可以通过在组件和 NgRx 存储之间提供服务来实现。基本上,这里的服务就像组件的数据提供者(想象一下每个选项卡有一个单独的服务,每个服务都知道要使用哪个商店羊肚菌)。
Ngrx 在 Angular 10 中引入了@ngrx/component-store。这使得保持每个组件的状态更容易。您可以像使用反应式服务一样使用它,将其注入到组件中并在组件中提供。
重要的是在组件中提供,以便每个组件都保留状态,而不是像常规 ngrx 状态那样的一个全局状态。