假设我有一个Redux商店。其状态为userCoordinates
字段
使用用户的当前坐标:
{
userCoordinates: [3.1457, 2.1728],
...
}
然后假设商店还有20个字段,其中的数据依赖于 坐标:
{
...
nearbyFriends: ["Bob", "Jimmy"],
nearbyShops: ["Point & Click tools", "Bobby Ray's"],
address: "42 Enth Street, Townsville, Countryland",
weather: "Cloudy",
...
}
所有这些字段中的值都是通过HTTP加载的 各种服务,每个领域的单独请求。
现在假设用户的地理位置已更新,并且会调度该操作
更改userCoordinates
:
dispatch(updateCoords([1.6180, 1.4142]));
现在userCoordinates
有新坐标,所有其他20个字段都有无效数据。
答案 0 :(得分:0)
根据它的架构方式,我会做两件事之一。
1:比较减速机中的状态。如果状态中的用户坐标发生了变化,您可以向商店添加一些内容,例如updateNeeded: true
,然后检查加载其他数据的位置,以便updateNeeded
为真,触发ajax调用以从服务器获取新数据。
2:如果设置正确,您可以使用componentWillReceiveProps
来比较道具。如果userCoordinates
发生更改,请发送操作以获取其他数据字段。
当然,如果您只需一次通话即可获得所有数据,这会更容易......