页面加载查询工作正常,但我的要求是再次查询就像点击按钮一样。
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)
}
});单击按钮时,我想再次执行查询。有没有任何可能的方法在一个函数中声明,这样它就可以在按钮单击和页面加载时调用。
发布于 2019-12-12 18:34:53
你可以useLazyQuery钩子将返回一个函数,你可以手动调用,IE在组件加载或点击。
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>;
}https://stackoverflow.com/questions/59300988
复制相似问题