0

我在我的 Svelte 应用程序中使用此代码:

<script>
  import { query } from '@urql/svelte'

  import { MY_QUERY } from 'queries'

  $: myQuery = query({
    query: MY_QUERY,
    variables: { id }
  })
</script>

{#if !$myQuery}
  Loading...
{:else}
  Oh WOW! {$myQuery.data}
{/if}

在 Sapper 中尝试相同的代码我得到这个错误:

Cannot access 'myQuery' before initialization.

如果我更改以下行

  • 由此:$: myQuery = query({

  • 对此:const myQuery = query({

有用!

为什么?

4

1 回答 1

2

由于这是 Sapper 代码,而且我没有看到任何其他明显的东西,我认为你已经愚弄了这个 bug。该错误仅发生在服务器端(SSR),不是吗?

然后解决方法是提示编译器在正确的位置声明变量:

  let myQuery // <=== add this

  $: myQuery = query({
    query: MY_QUERY,
    variables: { id }
  })
于 2020-05-01T10:09:21.907 回答