在Redux中使用来自同级状态的数据

在Redux中使用来自同级状态的数据,redux,Redux,假设我得到了以下状态定义 export const IFooState { settings: ISettingsState; somedata: ISomedataState; }; IsomeDataState反过来有一个可见的属性,它也可能在状态层次结构中更深层。然而,visible的值来自设置,即ISettingsState。现在,为了能够在ISomedataState内部设置visible,如何获得当前值 当然,您可能会争辩说,我可以侦听在“设置”中设置标志的操作,同时更

假设我得到了以下状态定义

export const IFooState {
   settings: ISettingsState;
   somedata: ISomedataState;
};

IsomeDataState反过来有一个可见的属性,它也可能在状态层次结构中更深层。然而,visible的值来自设置,即ISettingsState。现在,为了能够在ISomedataState内部设置visible,如何获得当前值

当然,您可能会争辩说,我可以侦听在“设置”中设置标志的操作,同时更新“数据”中的值,但是,例如,如果我的操作要求创建新对象,该怎么办?我没有那个时间点的当前值

目前,我通过截取根状态下的操作,然后为操作负载添加可见的值来解决这个问题,但这感觉有点不对劲


推荐的方法是什么?

TypeScript的使用有点让人困惑,但我认为您基本上是在Redux常见问题解答中提出了这个问题:。

现在如何获得当前值?。哪里如何从何处获取值?在组件中,在动作中,在减速器中,在视图中?当然是在ISomedataState内部。假设我有两个动作,设置可见项和新建项。前者应该隐藏/显示ISomedataState中的所有项,后者在ISomedataState中创建一个新项。现在我调度SET_VISIBLE,有效负载为true,所有项目都显示出来。然后,我创建了一个新条目,发布新的_条目,该条目的可见标志设置为初始值,该初始值可能恰好为false。现在,除了新的项目外,所有项目都显示出来。我想做的是,为visible提供实际值,以便所有项目都显示或隐藏,但不混合。这正是我最终得出的结论。我决定在数据状态下复制可见性指示器,因为它非常合理,我不想牺牲CombineReducer来支持在根状态下转发操作。