【发布时间】:2020-06-13 19:32:49
【问题描述】:
我正在尝试Execute queries manually,因此遵循了 Apollo 官方文档。我看不出文档和我的代码之间有任何区别,但是,我总是收到错误“重新渲染太多”。
const FEED_QUERY = gql`
query contactAccessKey($accessKey: String!) {
contactAccessKey(accessKey: $accessKey) {
id
contactInformation
belongsTo {
id
username
email
}
}
}
`;
function AccessKeySeeEmergencyContact() {
const [contact, setContact] = useState("");
const [getContactInformation, { loading, data }] = useLazyQuery(FEED_QUERY);
if (loading) return <p>Loading ...</p>;
if (data && data.contactAccessKey) {
setContact(data.contactAccessKey);
}
const accessKeyCode = "34a60667-80e3-4c97-9ded-15875d6507b1";
return (
<div>
{contact && <div>{contact.contactInformation}</div>}
<button
onClick={() =>
getContactInformation({ variables: { accessKey: accessKeyCode } })
}
>
Click me!
</button>
</div>
);
}
export default AccessKeySeeEmergencyContact;
【问题讨论】:
-
你在
render中设置一个状态变量,把它移到useEffect -
我只是想知道为什么它适用于文档还是我错过了那里的任何东西?
-
组件中甚至不需要设置状态,不知道那里发生了什么
标签: reactjs graphql react-apollo apollo-client graphene-django