Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何共享来自不同React钩子的非结构化变量?_Javascript_Ecmascript 6_React Hooks_Apollo Client_Destructuring - Fatal编程技术网

Javascript 如何共享来自不同React钩子的非结构化变量?

Javascript 如何共享来自不同React钩子的非结构化变量?,javascript,ecmascript-6,react-hooks,apollo-client,destructuring,Javascript,Ecmascript 6,React Hooks,Apollo Client,Destructuring,如何共享来自不同React钩子的非结构化变量 我在同一页中有几个: const { loadingDogs, errorDogs, dataDogs } = useQuery(GET_DOGS); const { loadingCats, errorCats, dataCats } = useQuery(GET_CATS); ... 是否可以使用相同的变量来加载和错误,以便对旋转图像进行集中管理?也许阿波罗有更聪明的方法来实现这一点,但如果没有,您可以这样做: const [isLoading

如何共享来自不同React钩子的非结构化变量

我在同一页中有几个:

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

是否可以使用相同的变量来加载
错误
,以便对旋转图像进行集中管理?

也许阿波罗有更聪明的方法来实现这一点,但如果没有,您可以这样做:

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

useEffect(() => { 
  setLoading(loadingDogs || loadingCats);
},[loadingDogs, loadingCats]);
不确定错误的格式,但可能是:

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

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

您可以像这样重命名已分解对象属性

const{loading:loadingDogs,error:dogsError,data:dogData}=useQuery(GET_DOGS);
const{loading:loadingCats,error:catsError,data:catData}=useQuery(GET_CATS);

可能不在同一行中。Try
const loading={dogs:loadingDogs}
const error={dogs:errorDogs}
?是
加载dogs
errorDogs
等。返回对象中的真正键?或者每个查询是否返回一个
{loading,error,data}
,而您只是不确定如何构造逻辑?@chazsolo后者。这就是阿波罗的
useQuery
所返回的结果