Reactjs 如何使用按钮上的graphql useQuery方法进行查询单击或手动执行查询
在页面加载时,查询工作正常,但我的要求是像单击按钮一样再次查询Reactjs 如何使用按钮上的graphql useQuery方法进行查询单击或手动执行查询,reactjs,graphql,Reactjs,Graphql,在页面加载时,查询工作正常,但我的要求是像单击按钮一样再次查询 const JOB_LIST_QUERY = gql` query detail($userId: Int!) { candidate(id:$userId){ id selected:manageCandidates(status:5){ id interviewType interviewDate } } } ;` const { loading, error, data } = useQ
const JOB_LIST_QUERY = gql`
query detail($userId: Int!) {
candidate(id:$userId){
id
selected:manageCandidates(status:5){
id
interviewType
interviewDate
}
}
}
;`
const { loading, error, data } = useQuery(JOB_LIST_QUERY, {
variables: {
userId: Number.parseInt(userId.toString()),
},
onCompleted: data => {
setSelectedJobList(data.candidate.selected)
},
onError: error => {
console.log(error.message)
}
});
function Hello() {
const [loadGreeting, { called, loading, data }] = useLazyQuery(
GET_GREETING,
{ variables: { language: "english" } }
);
if (called && loading) return <p>Loading ...</p>
if (!called) {
return <button onClick={() => loadGreeting()}>Load greeting</button>
}
return <h1>Hello {data.greeting.message}!</h1>;
}
单击按钮,我想再次执行查询。
是否有任何可能的方法在函数中声明,以便在按钮单击和页面加载时也可以调用该函数。您可以选择,钩子将返回一个可以手动调用的函数,即在组件加载或单击时
const JOB_LIST_QUERY = gql`
query detail($userId: Int!) {
candidate(id:$userId){
id
selected:manageCandidates(status:5){
id
interviewType
interviewDate
}
}
}
;`
const { loading, error, data } = useQuery(JOB_LIST_QUERY, {
variables: {
userId: Number.parseInt(userId.toString()),
},
onCompleted: data => {
setSelectedJobList(data.candidate.selected)
},
onError: error => {
console.log(error.message)
}
});
function Hello() {
const [loadGreeting, { called, loading, data }] = useLazyQuery(
GET_GREETING,
{ variables: { language: "english" } }
);
if (called && loading) return <p>Loading ...</p>
if (!called) {
return <button onClick={() => loadGreeting()}>Load greeting</button>
}
return <h1>Hello {data.greeting.message}!</h1>;
}
函数Hello(){
const[loadGreeting,{调用,加载,数据}]=useLazyQuery(
得到你的问候,
{变量:{语言:“英语”}
);
如果(调用和加载)返回加载
如果(!调用){
return loadGreeting()}>加载问候语
}
返回Hello{data.greeting.message}!;
}
您可以在加载组件或单击时,钩子将返回一个您可以手动调用的函数
const JOB_LIST_QUERY = gql`
query detail($userId: Int!) {
candidate(id:$userId){
id
selected:manageCandidates(status:5){
id
interviewType
interviewDate
}
}
}
;`
const { loading, error, data } = useQuery(JOB_LIST_QUERY, {
variables: {
userId: Number.parseInt(userId.toString()),
},
onCompleted: data => {
setSelectedJobList(data.candidate.selected)
},
onError: error => {
console.log(error.message)
}
});
function Hello() {
const [loadGreeting, { called, loading, data }] = useLazyQuery(
GET_GREETING,
{ variables: { language: "english" } }
);
if (called && loading) return <p>Loading ...</p>
if (!called) {
return <button onClick={() => loadGreeting()}>Load greeting</button>
}
return <h1>Hello {data.greeting.message}!</h1>;
}
函数Hello(){
const[loadGreeting,{调用,加载,数据}]=useLazyQuery(
得到你的问候,
{变量:{语言:“英语”}
);
如果(调用和加载)返回加载
如果(!调用){
return loadGreeting()}>加载问候语
}
返回Hello{data.greeting.message}!;
}
有可能,只需在onClick处理程序中执行查询,但hook
useQuery
可能无法执行该操作(如果它提供类似于{loading,error,data,updateQuery}的内容,则除外)=useQuery
。您使用的是哪个graphql客户端?有可能,只需在onClick处理程序中执行查询,但hookuseQuery
可能无法执行此操作(如果它提供类似{loading,error,data,updateQuery}=useQuery
之类的内容,则除外)。您使用的是哪个graphql客户端?