REACT查询:删除React Native Thr中的Quermeries
我正在尝试使用REC中的RQ(RN)中的RQ,并尝试遵循推荐的remove quercleies()
,如 https://stackoverflow.com/a/67635388/618099
export default () => {
const navigation = useNavigation<NativeStackNavigationProp<RootStackParamList>>()
const { setCurrentPortfolioId } = useCurrentPortfolio()
const { removeQueries } = useQueryClient()
const clearMemory = async () => {
setCurrentPortfolioId(null)
try {
removeQueries()
} catch (error) {
console.log(error)
}
await setTimeout(() => {}, 1000)
await SecureStore.deleteItemAsync('EMAIL')
await SecureStore.deleteItemAsync('PASSWORD')
navigation.replace('SignIn')
}
return (
<SafeAreaView style={styles.container}>
<Button onPress={clearMemory} label="LOG UD" />
</SafeAreaView>
)
}
但是它只是抛出的
undefined is not an object (evaluating 'this.queryCache')
at node_modules/react-query/lib/core/queryClient.js:122:21 in removeQueries
人是否对我做错了什么有所了解?
(是的,应用程序屏幕包裹在QueryClientProvider中)
function onAppStateChange(status: AppStateStatus) {
// React Query already supports in web browser refetch on window focus by default
if (Platform.OS !== 'web') focusManager.setFocused(status === 'active')
}
export const queryClient = new QueryClient({
defaultOptions: { queries: { retry: 2, cacheTime: 1000 } },
})
export default function App() {
const isLoadingComplete = useCachedResources()
useOnlineManager()
useAppState(onAppStateChange)
if (!isLoadingComplete) return null
return (
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
<StatusBar style="light" />
<QueryClientProvider client={queryClient}>
<CredentialsContextProvider>
<CurrentPortfolioContextProvider>
<Navigation />
</CurrentPortfolioContextProvider>
</CredentialsContextProvider>
</QueryClientProvider>
</SafeAreaProvider>
)
}
I'm trying to use RQ in react native (RN) and tried to follow the recommended removeQueries()
as suggested in https://stackoverflow.com/a/67635388/618099
export default () => {
const navigation = useNavigation<NativeStackNavigationProp<RootStackParamList>>()
const { setCurrentPortfolioId } = useCurrentPortfolio()
const { removeQueries } = useQueryClient()
const clearMemory = async () => {
setCurrentPortfolioId(null)
try {
removeQueries()
} catch (error) {
console.log(error)
}
await setTimeout(() => {}, 1000)
await SecureStore.deleteItemAsync('EMAIL')
await SecureStore.deleteItemAsync('PASSWORD')
navigation.replace('SignIn')
}
return (
<SafeAreaView style={styles.container}>
<Button onPress={clearMemory} label="LOG UD" />
</SafeAreaView>
)
}
but it just throws
undefined is not an object (evaluating 'this.queryCache')
at node_modules/react-query/lib/core/queryClient.js:122:21 in removeQueries
does anyone have an idea of what I'm doing wrong?
(yes, the app screens are wrapped in a queryClientProvider)
function onAppStateChange(status: AppStateStatus) {
// React Query already supports in web browser refetch on window focus by default
if (Platform.OS !== 'web') focusManager.setFocused(status === 'active')
}
export const queryClient = new QueryClient({
defaultOptions: { queries: { retry: 2, cacheTime: 1000 } },
})
export default function App() {
const isLoadingComplete = useCachedResources()
useOnlineManager()
useAppState(onAppStateChange)
if (!isLoadingComplete) return null
return (
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
<StatusBar style="light" />
<QueryClientProvider client={queryClient}>
<CredentialsContextProvider>
<CurrentPortfolioContextProvider>
<Navigation />
</CurrentPortfolioContextProvider>
</CredentialsContextProvider>
</QueryClientProvider>
</SafeAreaProvider>
)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它是因为它是一堂课。因此,必须像
queryclient.removequeries()
一样被称为- 以某种方式我删除了登录请求而不注意到它 - 因此,它是用错误的凭据请求它的
凭据
It throws because it's a class. So has to be called like
queryClient.removeQueries()
figured it out - somehow I deleted the sign out request without noticing it - so it was requesting it with the wrong credentials ????♂️
leaving this answer in case it helps others