【问题标题】:Sapper: setClient() is throwing "Function called outside component initialization"Sapper:setClient() 正在抛出“在组件初始化之外调用的函数”
【发布时间】: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>

【问题讨论】:

标签: graphql svelte sapper


【解决方案1】:

我自己找到了答案,至少 svelte-apollo 需要是一个 devDependencie。我也做了 apollo-boost 和 graphql devDependencies,但我不知道是否有必要

【讨论】:

  • 那么它将如何在生产中运行?!
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 2020-09-17
  • 2021-12-15
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 2012-06-30
  • 2021-07-05
相关资源
最近更新 更多