将此值视为存储在Zustand/任何其他存储中。
productMap: {
'product-id-abc': {
info: {
name: 'Gmail',
url: 'gmail.com',
api: 'localhost:8080'
},
endpoint: [{
'url': '/getemail',
'method': 'GET'
}],
users: [{
firstName: 'Sam',
email: 'sam@web.com'
}]
}
}
因此,如果需要访问存储中的任何值,这是一个棘手的问题。当我需要访问id为product-id-abc
的产品的第一个用户时,考虑这种情况。目前我正在使用这种方法。但是,这在我的用例中失败了,因为当存储更新时,它不会反映在状态变量中。下面是我的代码。
const productMap = useBoundedStore(state => state.productMap);
const [user, setUser] = useState();
useEffect(()=>{
if(productMap[props.productId])
if(productMap[props.productId].users.length) {
setUser(productMap[props.productId].users[0]);
}
},[[]]) // ---> (1)
更简单的方法是将productMap添加到标记为(1)的依赖项中,但是有没有更好的方法,比如将其存储为变量。如果有人能分享一些更好的模式,那就太好了。
1条答案
按热度按时间0g0grzrc1#
如果我没理解错的话,从存储中检索用户最简单的方法是使用useSelector。