Javascript React Redux-减速器之间的共享状态(减速器层次结构)
说我有一个类似expedia的搜索栏标签: 我希望一些字段(如出发日期和返回日期)对所有选项卡都是通用的 所以我的状态应该是这样的Javascript React Redux-减速器之间的共享状态(减速器层次结构),javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,说我有一个类似expedia的搜索栏标签: 我希望一些字段(如出发日期和返回日期)对所有选项卡都是通用的 所以我的状态应该是这样的 { commonReducer: { startDate: endDate: }, hotelsReducer: { rooms: [], location: [] }, flightsReducer: { from: to: } etc... } 当commonReducer数据在所
{
commonReducer: {
startDate:
endDate:
},
hotelsReducer: {
rooms: [],
location: []
},
flightsReducer: {
from:
to:
}
etc...
}
当commonReducer
数据在所有其他选项卡缩减器之间共享时,因为当他们单击搜索按钮时,所有缩减器都应该知道所选日期及其特定数据
有没有一种方法可以在减速器之间共享数据?或者具有某种层次结构,如:
{
searchTabsReducer: {
commonReducer: {
startDate:
endDate:
},
hotelsReducer: {
rooms: [],
location: []
},
flightsReducer: {
from:
to:
}
etc...
}
}
因此,searchTabsReducer
将处理所有提交(因为他是唯一一个掌握搜索选项卡状态全貌的人)
据我所知,该函数不支持层次结构
我最终得到了一个太大的文件,其中包含了所有的选项卡状态,但感觉不太对
谢谢。在减速器之间共享数据只需要创建独立的减速器。在其他减速器中,减速器始终可用 使用redux,来自应用程序状态的所有数据都可以在所有应用程序中使用 此外,在触发操作时,可以为您提供从应用程序状态访问所有数据的方法:
(dispatch, getState) => {
...
};
否则,您可以在任何地方导入redux操作,以使特定减速器的操作触发另一个减速器的操作
这样,“组合”方法解决了所有用例。在减速器之间共享数据只需要创建独立的减速器。在其他减速器中,减速器始终可用 使用redux,来自应用程序状态的所有数据都可以在所有应用程序中使用 此外,在触发操作时,可以为您提供从应用程序状态访问所有数据的方法:
(dispatch, getState) => {
...
};
否则,您可以在任何地方导入redux操作,以使特定减速器的操作触发另一个减速器的操作
通过这种方式,“组合”方法解决了所有用例。不需要组合减速器,只需将所需减速器的状态连接到要在其中显示数据的容器
从那里,使用该数据分派操作,例如搜索操作。无需组合还原程序,只需将所需还原程序的状态连接到要在其中显示数据的容器即可
从那里,使用这些数据来调度操作,例如您的搜索操作。我早就遇到了同样的问题,但我意识到我可以获取容器中的所有状态数据,因此我保持了层次结构的还原器“干净”,并结合了数据容器级别。您的意思是,容器将数据调度到还原器?不。我保持了还原程序的原样,并在容器中混合数据,将其输入到组件中。这并不能解决您的问题,它可以避免。啊,而且,我确实使用thunk来创建其他操作。我在一段时间前遇到了相同的问题,但我意识到我可以获取容器中的所有状态数据,所以我保持了还原器的“干净”一个层次结构,并结合了数据容器级别。您的意思是,容器将数据发送到缩减器?不。我保持了还原程序的原样,并在容器中混合数据,将其输入到组件中。这并不能解决您的问题,它可以避免。啊,而且,我确实使用thunk来创建其他操作。