Javascript const{data}=useQuery问题:我希望数据最初是对象
我正在尝试为我的react应用程序实现登录功能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'
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文字:
{正在加载,错误,数据={}