首页 > 解决方案 > 如何共享来自不同 React Hooks 的解构变量?

问题描述

如何共享来自不同 React Hooks 的解构变量?

我在同一页面中有几个:

const { loadingDogs, errorDogs, dataDogs } = useQuery(GET_DOGS);
const { loadingCats, errorCats, dataCats } = useQuery(GET_CATS);
...

是否可以使用相同的变量来loading集中error管理旋转图像?

标签: javascriptecmascript-6react-hooksapollo-clientdestructuring

解决方案


也许有一种更聪明的方法可以用 Apollo 做到这一点,但如果没有,你可以这样做:

const [isLoading, setLoading] = useState(false);

useEffect(() => { 
  setLoading(loadingDogs || loadingCats);
},[loadingDogs, loadingCats]);

不知道错误的格式是什么,但它会是这样的:

const [errors, setErrors] = useState([]);

useEffect(() => { 
  setErrors(/* merge the errors here */);
},[errorCats, errorDogs]);

推荐阅读