gpt4 book ai didi

angular - 如果商品不在商店中,则发送一个操作来获取它

转载 作者:太空狗 更新时间:2023-10-29 17:39:16 28 4
gpt4 key购买 nike

我正在尝试弄清楚如果某件商品不在商店中,那么获取该商品的最佳方式是什么。

例如,假设我有一个用户列表,我想获取特定用户。如果该用户不在商店中,我想从数据库中获取他。

下面的代码是否被认为是最佳实践,或者是否有更好的方法?

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]
}
})

最佳答案

const searchedUserId = 'abcdefg';
this.selecedUser$ = this.store.select('userList').pipe(
map(userList=>{const result = userList.findIndex(item=>item.id===searchedUserId);
return result === -1 ? {} : result;
}),
tap(userList=>{
if( !userList.hasOwnProperty('id') ) this.store.dispatch(new UsersActions.FetchUsers(searchedUserId));
})
);

点击不会改变可观察对象,当分派(dispatch)的 Action 改变状态时,可观察对象会被更新。

使用选择器而不是 select 语句,并注意操作找不到键的情况。

关于angular - 如果商品不在商店中,则发送一个操作来获取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45469820/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com