React Native Expo Go useQuery @apollo/client 钩子在 IOS phone 上没有 运行 但 useLazyQuery 没有 return 结果
ReactNative Expo Go useQuery @apollo/client hook doesn't run on IOS phone but useLazyQuery doesnt return results
您好,我目前 运行 是一个带有 Ngrok 的 ApolloServer。
在网络上一切正常,但在我的 IOS phone 上我正在使用 ExpoGo 我的 graphql 拒绝 return 数据。
使用突变很好,而且效果很好。所有查询都在沙箱中工作。
如果我使用 useQuery 挂钩,ApolloServer 甚至不会收到查询(我在解析器中有一个 console.log)。如果我使用 useLazyQuery 服务器接收请求,解析器中的结果是正确的,但我的 IOS phone 似乎没有得到它。没有重新加载。
我不知道从这里还能去哪里。
//Basically
import { useQuery } from '@apollo/client';
const [taskData, setTaskData ] = React.useState([]);
const { loading, error, data } = useQuery(GET_TASKS, {
onCompleted: (data) => setTaskData(data["getTasksById"]),
variables: { userId: 1 }
})
return (
<View style={{ marginBottom: useBottomTabBarHeight() + 45 }}>
<FlatList
data={getFilterData()} //function where i filter items
renderItem={({ item }) => <Task id={item.id} content={item.content} finished={item.finished} updateFinishedStatus={handlePress} />}
/>
</View>
)}
export const GET_TASKS = gql`
query GetTasksById($userId: ID) {
getTasksById(id: $userId) {
id
content
}
}`
和客户
const apolloClient = new ApolloClient({
cache: new InMemoryCache(),
link: ApolloLink.from([errorLink, httpLink])
});
我遇到了完全相同的问题。我按照此处的建议使用旧版本的 Apollo Client 和 Graphql 设法解决了这个问题:
您好,我目前 运行 是一个带有 Ngrok 的 ApolloServer。 在网络上一切正常,但在我的 IOS phone 上我正在使用 ExpoGo 我的 graphql 拒绝 return 数据。
使用突变很好,而且效果很好。所有查询都在沙箱中工作。
如果我使用 useQuery 挂钩,ApolloServer 甚至不会收到查询(我在解析器中有一个 console.log)。如果我使用 useLazyQuery 服务器接收请求,解析器中的结果是正确的,但我的 IOS phone 似乎没有得到它。没有重新加载。
我不知道从这里还能去哪里。
//Basically
import { useQuery } from '@apollo/client';
const [taskData, setTaskData ] = React.useState([]);
const { loading, error, data } = useQuery(GET_TASKS, {
onCompleted: (data) => setTaskData(data["getTasksById"]),
variables: { userId: 1 }
})
return (
<View style={{ marginBottom: useBottomTabBarHeight() + 45 }}>
<FlatList
data={getFilterData()} //function where i filter items
renderItem={({ item }) => <Task id={item.id} content={item.content} finished={item.finished} updateFinishedStatus={handlePress} />}
/>
</View>
)}
export const GET_TASKS = gql`
query GetTasksById($userId: ID) {
getTasksById(id: $userId) {
id
content
}
}`
和客户
const apolloClient = new ApolloClient({
cache: new InMemoryCache(),
link: ApolloLink.from([errorLink, httpLink])
});
我遇到了完全相同的问题。我按照此处的建议使用旧版本的 Apollo Client 和 Graphql 设法解决了这个问题: