Javascript const{data}=useQuery问题:我希望数据最初是对象

Javascript const{data}=useQuery问题:我希望数据最初是对象,javascript,reactjs,react-apollo,apollo-client,react-hook-form,Javascript,Reactjs,React Apollo,Apollo Client,React Hook Form,我正在尝试为我的react应用程序实现登录功能 import React, { useState, useEffect } from 'react' import { useQuery, useLazyQuery, useMutation } from "@apollo/client" import { useForm } from "react-hook-form" import { LOGIN } from '../queries/queries'

我正在尝试为我的react应用程序实现登录功能

import React, { useState, useEffect } from 'react'
import { useQuery, useLazyQuery, useMutation } from "@apollo/client"
import { useForm } from "react-hook-form"
import { LOGIN } from '../queries/queries'

const Login = () => {

   const [formValue, setFormValue] = useState({})
   const { loading, error, data } = useQuery(LOGIN, {
      variables: {
         email: formValue.email,
         password: formValue.password
      }
   })


   const { register, handleSubmit } = useForm()
   const onSubmit = (value) => {
      setFormValue(value)
   }



   if (loading) return <p>loading</p>


   return(
      <>
         <form onSubmit={handleSubmit(onSubmit)} >
            <input 
               type="text"
               name="email"
               placeholder="E-mail"
               ref={register}
            />
            <input 
               type="password"
               name="password"
               placeholder="Password"
               ref={register}
            />
            <button type="submit">
               Login
            </button>
         </form>
      </>
   )
}
import React,{useState,useffect}来自“React”
从“@apollo/client”导入{useQuery,useLazyQuery,useMutation}
从“react hook form”导入{useForm}
从“../querys/querys”导入{LOGIN}
常量登录=()=>{
常量[formValue,setFormValue]=useState({})
const{loading,error,data}=useQuery(登录{
变量:{
电子邮件:formValue.email,
密码:formValue.password
}
})
常量{register,handleSubmit}=useForm()
const onSubmit=(值)=>{
setFormValue(值)
}
如果(加载)返回加载

返回( 登录 ) }
例如,当我编写
console.log(data.user)
代码时,会发生错误,因为
user
未定义。 我知道如果我直接对变量进行编码,我可以从
数据中获取对象,但我想在handleSubmit之后获取它

我认为,如果我可以使
数据
对象最初,错误不会发生。
那么有什么方法可以做到这一点吗?

在引用该对象属性时,请尝试使用“data?.user”而不是“data.user” 如果对象不存在,问号应该禁用错误

更新: 您还可以尝试将数据声明为空objec文字: {正在加载,错误,数据={}