ReactJS+;Apollo客户端-无需渲染即可获得结果

ReactJS+;Apollo客户端-无需渲染即可获得结果,reactjs,apollo,Reactjs,Apollo,我在Apollo客户端使用ReactJS类型脚本 我想知道如何向我的服务器发出请求,并将结果存储在变量中,而不生成组件 我可以做到: <Query query={GET_AC}> {({ loading, data }) => { if (loading) return (<div>Loading</div>); return (data.truc.map((ac) => <div>ac</div>)); </Quer

我在Apollo客户端使用ReactJS类型脚本

我想知道如何向我的服务器发出请求,并将结果存储在变量中,而不生成组件

我可以做到:

<Query query={GET_AC}>
{({ loading, data }) => {
if (loading) return (<div>Loading</div>);
return (data.truc.map((ac) => <div>ac</div>));
</Query>

{({加载,数据})=>{
如果(装载)返回(装载);
返回(data.truc.map((ac)=>ac));
但我必须用一个组件来报税

我想在不处理结果的情况下将结果存储在组件的一个变量中(然后创建一个实时搜索系统)。我该怎么做

比如:
var result=query(maQuery);//在我的组件类中


谢谢!

您可以使用Apollo HOC graphql或在功能组件内部使用hook useQuery作为道具获取数据。

您可以使用Apollo的挂钩

var result = useQuery(query)

还有另一种不常见的方法,导出apollo客户端,然后简单地调用它的查询函数:

client.query({query: yourQuery})

如果我理解正确,您需要将组件呈现在您希望存储变量的位置。这样您就可以实际使用它。这也将允许您从所述组件发出新的查询。@larz仅为此创建一个文件是一种好做法吗?依我看,最佳做法是有一个组件(我们称之为容器)它处理您的数据获取,然后是一个演示组件,它只处理容器中的显示内容和触发内容。更易于测试和重用。谢谢Iarz!