- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试 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
<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}
await()
在
onMount()
有用!像这样:
onMount(async () => {
await sleep(2000)
loaded = true
})
@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;
};
@urql/svelte
上的错误:
https://github.com/FormidableLabs/urql/issues/795.
最佳答案
如果使用 Vite 作为捆绑器,则需要排除 @urql/svelte
从依赖预捆绑,这显然对我造成了这个错误。
将此添加到您的 Vite 配置中:
{
optimizeDeps: {
exclude: ['@urql/svelte']
}
}
这也适用于
svelte-apollo
, 做同样的事情但是替换包名!
关于javascript - @urql/svelte,如果不在 onMount 中,则为 "Function called outside component initialization",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62101637/
在我看来(我知道我会错)我在 svelte 中的 onMount 生命周期函数中所做的事情也可以在它之外完成。有区别吗?或者..我遗漏了很多要点。 import {onMount} from '
在我看来(我知道我会错)我在 svelte 中的 onMount 生命周期函数中所做的事情也可以在它之外完成。有区别吗?或者..我遗漏了很多要点。 import {onMount} from '
如果我添加 document.addEventListener 来单击 onMount,我发现了一个奇怪的行为。 我有 2 个组件:应用程序和嵌套 App中有一个按钮,设置isShow = true,
重新加载页面时,我想获取当前路线。可悲的是 route.name 是 undefined,router.currentRoute 是 RefImpl 对象,它有正确的路由 '/team' 里面。 ro
我正在尝试使用 React(和 Tailwind 但没关系)创建一个 onMount 动画。我目前的实现是这样的: const Component = () => { const [mount
你能帮我理解这两个组件之间的区别是什么: 回复:https://codesandbox.io/s/svelte-onmount-or-not-yhu91 使用 onMount: import {
我需要的是使用 async-await在 slim onMount() . 或者,也许您可以建议我出了什么问题以及我可以使用什么。 转载 去这里:https://svelte.dev/repl/0
我试图在我的代码中使用我在 onmount 中创建的常量作为 {myip},我不知道如何从 onmount 中提取它 import { page } from '$app/stores' i
我试图在我的代码中使用我在 onmount 中创建的常量作为 {myip},我不知道如何从 onmount 中提取它 import { page } from '$app/stores' i
我有一个组件和一个包含状态和一些操作的 Pinia 商店。该代码在浏览器和 E2E (cypress) 测试中运行良好,但在单元测试中失败。我正在使用 vue-testing-utils 和 vite
我正在尝试使用“active”类来设置我的网络项目当前事件选项卡的样式。为了定位我正在使用的选项卡元素 onMount(() => { const links = document.q
如果我们有类似 Tooltip 类的东西需要实例化一个实例,更新该实例,并在安装、更新和销毁组件时同步销毁该实例(如中所示)下面的代码),似乎有两种模式可以做到这一点。 使用use:action 使用
我已经使用以下命令安装了 stripe.js:npm install stripe现在我想将它导入到我的 sapper 组件中,这样我就可以使用它,但无法弄清楚如何做到这一点,尽管阅读了所有 mdn
我正在尝试 https://github.com/FormidableLabs/urql/tree/master/packages/svelte-urql 所做的惊人作品伙计们。 直到今天的问题,一切
我是一名优秀的程序员,十分优秀!