我有一个设置用户化身的组件。它需要显示已登录的用户映像或工作人员。
工作人员是一个可选的通过的道具,登录用户配置文件图像来自于redux状态。
下面是基本版本。问题是,redux状态映像(登录用户)首先存在,然后才知道支柱工作人员是否在那里。
问题是,它首先填充已登录的用户映像(因为在redux状态下已经可用),然后更改为worker映像。我如何延迟检查,因此setState,直到我确定道具已经处理或没有?
type IProps = {
worker?: IUser;
};
const AvatarManager = ({ worker }: IProps) => {
const [image, setImage] = useState<string>("");
const profileImage = useSelector(getProfileImage);
useEffect(() => {
if (worker) {
setImage(worker.profile_image);
return;
}
if (profileImage) {
setImage(profileImage);
}
}, [worker]);
}
发布于 2022-11-03 12:14:25
我已经传递了一个额外的布尔道具来检查我是需要设置worker映像还是登录用户映像。
type IProps = {
isWorkerImage?: boolean;
worker?: IUser;
};
const AvatarManager = ({ isWorkerImage, worker }: IProps) => {
const [image, setImage] = useState<string>("");
const profileImage = useSelector(getProfileImage);
useEffect(() => {
if (worker) {
setImage(worker.profile_image);
return;
}
if (!isWorkerImage && profileImage) {
setImage(profileImage);
}
}, [worker]);
}
https://stackoverflow.com/questions/74302646
复制相似问题