【发布时间】:2020-11-26 21:02:48
【问题描述】:
我正在尝试通过在 _layout.svelte 和 setClient 中声明一个新的 ApolloClient 来使用 apollo-boost 和 svelte-apollo 在 sapper 中实现 graphql。声明 ApolloClient 工作得很好,但是当涉及到 setClient 时,它会:
错误:在组件初始化之外调用函数
这里是我的 _layout.svelte 中的脚本标签
<script>
import Nav from '../components/Nav.svelte';
export let segment;
import fetch from 'node-fetch'
import ApolloClient from "apollo-boost";
import { setClient } from "svelte-apollo";
const client = new ApolloClient({
uri: "http://localhost:1337/graphql",
fetch: fetch,
onError: ({ networkError, graphQLErrors }) => {
console.log("graphQLErrors", graphQLErrors);
console.log("networkError", networkError);
},
})
setClient(client)
</script>
【问题讨论】:
-
你需要在预加载函数中加载它 - github.com/jdgamble555/sapper-urql-ssr