我想知道如果商品不在商店中,那么获取商品的最佳方式是什么。如果商品不在商店中,请发送一个操作以获取它
例如,假设我有一个用户列表,我想获取特定用户。如果该用户不在商店中,我想从数据库中取回他。
下面的代码是否被认为是最佳实践还是有更好的方法呢?
const searchedUserId = 'abcdefg';
this.selecedUser$ = this.store.select(state => {
const selectedUserIndex = state.userList.findIndex(searchedUserId)
if (selectedUserIndex === -1) {
this.store.dispatch(new UsersActions.FetchUsers(searchedUserId));
} else {
return state.userList[selectedUserIndex]
}
})
商店应该是您的应用程序中唯一的数据来源。因此,如果用户不在商店中,您应该派发一个操作来获取数据并更新商店,然后您应该从商店中检索数据。 –
但为了取回用户,我需要听商店。 只有在选择器内我可以做检查... – doron