我正在构建一个音乐播放器应用程序,我正在使用 REST API 从各个端点(播放列表、某个用户发布的曲目等)获取曲目
我正在使用 redux 和 normalizr 来管理我的状态。我创建了一个tracks
实体,用于映射track
对象及其 ID。
简而言之,我的状态看起来有点像这样:
{
playlists: {
123: { id: 123, name: 'foo', tracks: [1, 2, 3] }
},
users: {
me: { name: 'Niek', tracks: [2, 3] },
},
entities: {
tracks: {
1: { name: 'bar', user_favorited: false, ... },
2: { name: 'foo', user_favorited: false, ... },
3: { name: 'bar', user_favorited: true, ... }
}
}
}
到目前为止,这对我来说非常有用。但现在我正在构建favorite
通过调用另一个 API 端点来切换轨道状态的功能。
此端点不包括track
响应中的整个资源,但我确实想在 API 调用成功后更新user_favorited
单个实体的属性。track
实现这一目标的最佳方法是什么?
作为一种解决方法,我现在track
在端点调用成功后再次从另一个端点获取整个实体user_favorited
,但我希望找到一个不需要这样做的优雅解决方案。