useQuery只有在單擊按鈕時,我才有可能使用鉤子運行查詢嗎?
const handleClick = () => {
const [, { data }] = useLazyQuery(GET_ORDER_INVOICE, {
variables: { order_Id: orderNumber }
});
return '';
};
<Button
priority={ButtonPriority.SECONDARY}
onClick={ () => {
handleClick();
} }
/>
但是,這與 React Hook 中斷“useLazyQuery”在函式“handleClick”中呼叫,該函式既不是 React 函陣列件也不是自定義 React Hook 函式。React 組件名稱必須以大寫字母開頭。有沒有機會我可以將呼叫查詢系結到按鈕單擊?
uj5u.com熱心網友回復:
您需要呼叫useLazyQuery組件的主體。然后它將回傳給您一個您可以呼叫的函式handleClick:
const Example = () => {
const [executeQuery, { data }] = useLazyQuery(GET_ORDER_INVOICE);
const handleClick = () => {
executeQuery({
variables: { order_Id: orderNumber }
})
}
// ...
<Button
priority={ButtonPriority.SECONDARY}
onClick={handleClick}
/>
}
uj5u.com熱心網友回復:
@AleksandrsuseQuery()在組件渲染上呼叫,但有時我們不想在組件渲染上呼叫查詢,而是我們的引數在組件渲染后準備好,并且我們希望作為我們的要求傳遞的那些引數,因此在這種情況下useLazyQuery將很有用。
總之useLazyQuery不會在組件渲染上呼叫。
有關更多詳細資訊或示例,您可以訪問此鏈接:https ://www.apollographql.com/docs/react/api/react/hooks/#uselazyquery
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/461453.html
標籤:javascript 反应 打字稿
