![](/img/trans.png)
[英]How to send a similar GraphQL query with diffirent ID's using Apollo?
[英]How to call a GraphQL query using Apollo?
我有一個簡單的組件:
import { FC } from 'react';
import './MyComponent.css';
import { useGetHelloQuery, useSendMailQuery } from '../../generated/queries'
interface MyComponentProps {}
const MyComponent: FC<MyComponentProps> = () => {
const { data: hello, loading: isLoading } = useGetHelloQuery();
const { data: sendMail, loading: isMailing } = useSendMailQuery();
if (isLoading || isMailing) {
return (
<div>Loading...</div>
)
}
return (
<>
<div className="MyComponent">
data: {hello?.getHello}
</div>
</>
)
}
export default MyComponent
這調用了這個解析器:
// Apollo server resolvers
import { Resolvers } from "../generated/resolvers-types"
import * as mail from "./nodemailer"
export const resolvers: Resolvers = {
Query: {
getHello() {
return 'hello'
},
sendMail() {
mail.main()
return 'qwe'
}
},
}
當useSendMailQuery()
被解析時,它使用解析器調用mail.main()
函數並發送電子郵件。 我想使用一個功能來發送電子郵件,而不是在組件加載時發送電子郵件。
有什么建議么?
答案是使用惰性查詢: https ://www.apollographql.com/docs/react/api/react/hooks/#uselazyquery
const [sendMail, { called, loading: isMailing, data }] = useSendMailLazyQuery();
return (
<>
<div className="MyComponent">
data: {hello?.getHello}
</div>
<button onClick={() => sendMail()}>Send mail</button>
</>
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.