我对使用Redux(对于Angular / Ionic项目,依次使用ngrx
)进行状态管理感到有些陌生,但是我已经完成了一些示例教程,并且非常喜欢这种方法,以及状态的持久性。
但是,到目前为止,我发现的任何示例都没有涵盖我所遇到的一些问题。给定Profile
模型:
export class Profile {
public id?: string;
public name?: string;
public interests?: Interest[];
public jobs?: Job[];
}
如果有人能指出正确的方向,我会提出一些疑问:
jobs
或interests
的所有工作? Profile
状态对象吗?interests
和jobs
的状态,然后在准备好同步用户时使用操作来更新用户的个人资料,并从应用程序的状态中获取这些值吗?SaveInterests
中的InterestsActions
)的动作可以调用另一个商店(例如SaveInterests => SaveProfile
)中的动作吗?答案 0 :(得分:0)
在典型的redux或ngrx应用程序中,您只会看到一个商店。您的应用程序的状态将表示为一个大的JavaScript对象。有关更多信息,请参见redux文档Three Principles和Core Concepts。
您商店的结构应规范化,请参阅redux文档Normalizing State Shape或帖子NgRx: Normalizing state。这意味着它看起来类似于以下内容:
{
profiles: {...},
interests: {...},
jobs: {...},
}
一旦数据存储在商店中,它就可用于整个应用程序。
如果这是您要的操作,则您将无法从reducer调度动作。但是您可以调度多个动作,也可以在多个化简器中使用同一动作(一个动作将发送到应用程序中的每个化简器)。