用apollo-client查詢包裝的反應組件會自動啓動對服務器的數據調用。你如何動態地控制反應apollo-客戶端查詢啓動?
我想僅針對特定的用戶輸入發出數據請求。
You can pass the skip option in the query options - 但這意味着refetch()函數不作爲組件的支撐提供;並且看起來跳過的值不是在prop更新時動態評估的。
我的使用情況是一個地圖組件。我只想要在用戶按下按鈕時加載標記的數據,而不是初始組件安裝或位置更改。
一個代碼示例如下:
// GraphQL wrapping
Explore = graphql(RoutesWithinQuery, {
options: ({ displayedMapRegion }) => ({
variables: {
scope: 'WITHIN',
targetRegion: mapRegionToGeoRegionInputType(displayedMapRegion)
},
skip: ({ targetResource, searchIsAllowedForMapArea }) => {
const skip = Boolean(!searchIsAllowedForMapArea || targetResource != 'ROUTE');
return skip;
},
}),
props: ({ ownProps, data: { loading, viewer, refetch }}) => ({
routes: viewer && viewer.routes ? viewer.routes : [],
refetch,
loading
})
})(Explore);
跳過的報告仍然不適用於此用例。現在你必須要和阿波羅手工取回自己。 – Pencilcheck