アイテムが店舗にない場合には、そのアイテムを取得する最も良い方法は何かを判断しようとしています。ストアにないアイテムがある場合は、それを取得するアクションをディスパッチしてください。
たとえば、ユーザーの一覧があり、特定のユーザーを取得したいとします。そのユーザーが店舗にいない場合、私は彼をDBからフェッチしたい。
このコードは、以下のベストプラクティスと見なされますか、そうするのがより良い方法ですか?
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]
}
})
ストアは、アプリケーション内の唯一のデータソースである必要があります。したがって、ユーザーが店舗にいない場合は、データを取得してStoreを更新するアクションをディスパッチしてから、ストアからデータを取得する必要があります。 –
しかし、ユーザーを取得するために、私は店に耳を傾ける必要があります。 セレクタの内部でのみ、そのチェックを行うことができます。 – doron