【发布时间】:2023-03-15 20:00:01
【问题描述】:
如何使用useState 并在组件呈现之前将其设置为从graphql 接收到的值?
我试过了:
const [name, setName] = useState('');
const [email, setEmail] = useState('');
const [me] = useQuery(gql`
query Me {
me {
id
name
email
}
}
`);
useEffect(() => {
(async () => {
const { data } = await me();
if (data) {
setName(data.me.name);
setEmail(data.me.email);
}
})();
}, []);
并收到此错误:
TypeError: Object is not a function
Profile
src/pages/Profile.js:51
48 | const [currentPasswordValid, setCurrentPasswordValid] = useState(false);
49 | const [open, setOpen] = useState(false);
50 |
> 51 | const [me] = useQuery(gql`
| ^ 52 | query Me {
53 | me {
54 | id
我尝试这样做的原因是将表单输入的值设置为当前用户值:
<TextField value={name} onChange={(e) => setName(e.target.value)} />
【问题讨论】:
-
FC fn body 都是关于渲染的,它不能被停止、屈服或……你只能有条件地阻止一些部分——如果数据没有准备好,只需显示/返回“加载”跨度>
标签: reactjs graphql apollo react-apollo