React GraphQL-如何将查询组件的结果作为对象返回在React上下文中使用

时间:2019-02-14 22:50:45

标签: reactjs graphql react-apollo

我有一个查询组件,该组件获取已登录用户的信息。查询本身可以工作,但是我无法将查询结果作为对象返回,然后又想传递给React.createContext( )

我正在使用Apollo客户端在我的React应用程序中创建查询组件。

以下是我当前代码的示例:

 function getUser() {
      return (
        <Query query={query.USER_INFO}>
          {({ loading, error, data }) => {
            if (loading) return <div>Loading</div>;
            if (error) return <div>error</div>;

            const userInfo = {
              name: data.user.name,
              age: data.user.age,
            }

          }}
        </Query>
      );
    }

    //need userInfo object to go here
    export const UserContext = React.createContext(userInfo);

如何获取查询的返回值然后在React.createContext中使用?我之所以要这样做,是为了避免在每个我要登录用户信息的组件中重写此查询。

1 个答案:

答案 0 :(得分:0)

说实话,对我来说,您似乎只是在想一个return语句:

function getUser(){       返回(                    {{{loading,error,data})=> {             如果(正在加载)返回正在加载;             如果(错误)返回错误;

        const userInfo = {
          name: data.user.name,
          age: data.user.age,
        }

        return userInfo // ----- this here

      }}
    </Query>
  );
}

//need userInfo object to go here
export const UserContext = React.createContext(userInfo);

但是我没有对其进行测试,也没有采用这种方法-请尝试一下,如果有帮助的话