不懂就问,假如有以下 hooks:
import React from 'react';
const Demo = () => {
const { userId } = useUser();
const { address } = useUserAddress(userId);
const { favious } = useUserFavious(userId);
return (
<div>Hello World</div>
);
};
其中,useUserAddress
和useUserFavious
依赖userId
的值,我如何确保userId
获取成功后才运行下面的 hooks。目前想到的方案:
- 方案一:在
useUserAddress
和 useUserFavious
里判断userId
是否存在值。但是这样如果 hooks 多,每个都得加这个判断很繁琐 - 方案二:把后面的hooks提取到子组件或者 HOC:
import React from 'react';
const ChildrenDemo = ({ userId }) => {
const { address } = useUserAddress(userId);
const { favious } = useUserFavious(userId);
return (
<div>Hello World</div>
);
};
const Demo = () => {
const { userId } = useUser();
if(!userId) return null;
return <ChildrenDemo userId={userId} />
};
请问有没有更好的处理方式吗?感觉都挺麻烦的
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…