我正在构建一个音乐播放器应用,使用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, ... }
}
}
}
这个功能目前对我来说运作得很好。但是现在我正在构建另一个API端点来切换曲目的收藏状态。
这个端点在响应中并不包含整个音轨资源,但我希望在API调用成功后更新单个音轨实体的user_favorited属性。
有什么最佳方法可以实现这一点吗?
作为一种解决方法,我现在在user_favorited端点调用成功后再从另一个端点重新获取整个音轨实体,但我希望找到一个优雅的解决方案,不需要这样做。