我在react中创建了一个应用程序,其目的是查找航班并在结果窗口中显示它们。通过侧栏中的过滤器设置,您可以过滤这些结果。目前我正在将react应用程序转换为Redux。
我的商店中有以下状态:
const defaultState = {
flightOffers,
filteredFlightOffers,
filters
}
其中flightOffers是一个包含flightresults的对象数组:
flightOffers = [{
"inboundFlight": {
"departureDate": "2016-06-02",
"departureTime": "09:00",
"departureTimeSpan": "morning",
"arrivalDate": "2016-06-02",
"arrivalTime": "12:32",
"arrivalTimeSpan": "afternoon",
"marketingAirline": {
"companyShortName": "KL",
"name": KLM,
"imageurl": "images/logos/kl.png"
},
"flightNumber": 5131,
"departureAirport": {
"locationCode": "BCN",
"name": "Barcelona"
},
"arrivalAirport": {
"locationCode": "AMS",
"name": "Amsterdam"
}},
];
filteredFlightOffers的状态是相同的,但是是flightOffers状态对象的子集。
过滤器状态对象具有以下格式:
filters = [{
"type": "airlines",
"checked": true,
"label": "Air France",
"count": 579
},
{
"type": "airlines",
"checked": true,
"label": "Brittish Airways",
"count": 554
},
{
"type": "airlines",
"checked": true,
"label": "CityJet",
"count": 576
}
];
现在我有以下问题:
我的过滤器状态对象是从flightOffers状态对象派生的,当来自flightOffers的数据被API调用后移时,应该动态创建。在redux模式中哪里是实现这种逻辑的好地方?
我有一个针对我的flightOffers状态和我的设置状态的调度程序。单击过滤器设置时,操作将转到过滤器调度程序并返回新的过滤器状态。但是如何根据flightOffer状态计算所有新的过滤器计数?例如我是否需要触发FlightOfferCounter操作并将过滤器状态作为输入参数?如果是这样,我可以从我的过滤器减速器发出这个电话吗?或者我是否必须创建一个FlightOfferCounter减速器来监听与过滤器减速器相同的动作?那么问题是这些减速器不能并行执行,因为flightOfferCounter基于过滤器状态中的检查值。
我正在阅读有关redux thunk(用于实现业务逻辑)的内容。这是我需要的东西吗?
希望我的问题有点清楚。