GraphQL Apollo 接收数据对象未定义

Posted

技术标签:

【中文标题】GraphQL Apollo 接收数据对象未定义【英文标题】:GraphQL Apollo recieving data object undefined 【发布时间】:2019-03-10 20:20:27 【问题描述】:

我正在做一个突变,它需要一个用户名和密码,并作为来自服务器的响应,它得到一个登录响应。

<Mutation mutation=SIGN_UP>
        (signUp, data) => (
         <form onSubmit=e => 
            e.preventDefault();
            signUp(
                 variables:  
                    user: 
                    "email": input_email.value as String, 
                    "password": input_password.value as String
                    
                
            );
            console.log("Signup", signUp)
            console.log("Data", data.data);

            input_email.value = "";
            input_password.value = "";
         >
            <div className="col-sm">
                <div className="signin__header">Signup IMPACT R&D</div>
            </div>
            <div className="col-sm signin__input" >
                <div className="signin__input__header" >Email</div>
                <input className="signin__input__email" type="text" placeholder="Enter email" required ref=node=> input_email = node></input>
                <div className="signin__divide-line"></div>
            </div>
            <div className="col-sm signin__input">
                <div className="signin__input__header" >Password</div>
                <input className="signin__input__password" type="password" placeholder="Enter password" ref=node=> input_password = node></input>
                <div className="signin__divide-line"></div>
            </div>
            <div className="col-sm-3">
                <button className="signin__input__button" type="submit">Sign Up</button>
            </div>
         </form>
    )
</Mutation>

这是我的 GraphQLtag。

 export const SIGN_UP : any = gql`
 mutation Register($user: UserInput!) 
    register(user: $user) 
        status,
        refreshToken,
        token,
        error
    
  
`;

在浏览器网络中,我可以看到我收到了数据。但是我的数据对象仍然是空的,当我尝试打印出来时......帮助!

【问题讨论】:

【参考方案1】:

发现我需要在注册后用 then 承诺等待响应

).then ((res: any) => 
errorMessage = res.data.register.token;
);

【讨论】:

以上是关于GraphQL Apollo 接收数据对象未定义的主要内容,如果未能解决你的问题,请参考以下文章

Apollo GraphQL 客户端“网络错误:在未定义的对象上找不到字段 XXXX”,disableOffline:false

如何在调用 Apollo Graphql Query 之前等待服务器响应?

React Native:为啥使用 Apollo 的 GraphQL 查询返回未定义?

使用嵌套对象获取 React 中 Graphql 的问题 - 对象未定义

ReactJS/Javascript/Graphql/React-apollo:无法读取未定义的属性“正在加载”

Apollo GraphQl 模型属性未访问 ReactJs 中的对象