我尝试从Next.js
上的服务器端页面生成页面,但我遇到了一个问题,所以我创建了一个Apollo
示例,并从我的查询中导入了一个Query
,我从客户端上的apollo传递了变量,就像我在useQuery
上所做的那样,因为我不知道另一种方法来做这件事,也不知道如何处理错误?
下面是我的getServerSideProps
:
export async function getServerSideProps(context) {
const slug = context.params.slug;
const data = await Static.query({
query: LANDING,
variables: { slug },
});
return {
props: {
data: data,
},
};
}
下面是我的疑问:
import gql from "graphql-tag";
export const CATEGORIES = gql`
query CategoriesView {
CategoriesView {
_id
Name
Description
Icon
}
}
`;
这是我的客户:
import {
ApolloClient,
HttpLink,
ApolloLink,
InMemoryCache,
} from "@apollo/client";
const uri = "http://localhost:3000/api"
const httpLink = new HttpLink({uri});
export const Apollo = new ApolloClient({
ssr: typeof window === "undefined" ? true : false,
cache: new InMemoryCache(),
link: ApolloLink.from([httpLink]),
});
但我得到这个错误:无法获取
下面是它的截图:
1条答案
按热度按时间abithluo1#
这是我的例子,在我的情况下工作。
我不确定你是否可以把gql查询放在
getServerSideProps
中,因为apollo为你的查询创建了某种“缓存”。并检查
@apollo/client
库