Fre*_*ors 5 javascript svelte svelte-component svelte-3 urql
我正在尝试https://github.com/FormidableLabs/urql/tree/master/packages/svelte-urql人所做的令人惊叹的作品。
直到今天问题为止一切正常。
我正在使用下面的代码,它给了我这个错误:
Error: Function called outside component initialization
at get_current_component (index.mjs:615)
at getContext (index.mjs:648)
at getClient (urql-svelte.mjs:55)
at query (urql-svelte.mjs:81)
at Players.svelte:41
Run Code Online (Sandbox Code Playgroud)
代码:
<script>
import { query } from '@urql/svelte'
import { myQuery } from './myQuery'
let players
let myVars
function sleep (ms) {
return new Promise((resolve) => setTimeout(resolve, ms))
}
$: (async () => {
await sleep(2000) // this gives me the error; removing it make it work
players = query({
query: myQuery,
variables: { ...myVars },
requestPolicy: 'cache-and-network'
})
})()
</script>
{#if !players}
Loading players...
{:else}
Players loaded! Do the work.
{/if}
Run Code Online (Sandbox Code Playgroud)
你能建议有什么问题吗?
如果我用await()
它就onMount()
可以了!像这样:
Error: Function called outside component initialization
at get_current_component (index.mjs:615)
at getContext (index.mjs:648)
at getClient (urql-svelte.mjs:55)
at query (urql-svelte.mjs:81)
at Players.svelte:41
Run Code Online (Sandbox Code Playgroud)
这里的代码@urql/svelte
:
也许是context
代码?
import { setContext, getContext } from 'svelte';
import { Client, ClientOptions } from '@urql/core';
const CLIENT = '$$_URQL';
export const getClient = (): Client => getContext(CLIENT);
export const setClient = (client: Client): void => {
setContext(CLIENT, client);
};
export const initClient = (args: ClientOptions): Client => {
const client = new Client(args);
setClient(client);
return client;
};
Run Code Online (Sandbox Code Playgroud)
如果您需要,我可以在 CodeSandbox 上创建 REPL,没问题。
错误@urql/svelte
: https: //github.com/FormidableLabs/urql/issues/795。
有关您的 Svelte 项目的信息: - Chrome 83 - Svelte 版本:3.23.0 - Rollup
我的情况有点不同,但遇到了同样的错误。就我而言,我试图让 Svelte/Sapper 在 Docker 容器中运行以用于开发目的。在此之前我一直在摆弄package.json
,在某个时候我决定移动svelte
到sapper
“依赖项”而不是“devDependency”。
"dependencies": {
// ...
"sapper": "^0.27.0",
"svelte": "^3.0.0"
}
Run Code Online (Sandbox Code Playgroud)
这是一个坏主意。一旦我将其移回“devDependency”,错误就消失了,一切都按预期工作。
"devDependencies": {
// ...
"sapper": "^0.27.0",
"svelte": "^3.0.0"
}
Run Code Online (Sandbox Code Playgroud)
我希望这对以后的人有帮助。
归档时间: |
|
查看次数: |
5471 次 |
最近记录: |