问题标签 [urql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 如何使用 useMutation 和 NextJS 在 URQL 中设置数据属性?
如何使用 useMutation 设置 URQL 的数据属性?
使用 apollo 时,您执行以下操作:
使用 URQL 时下面的代码是否正确?
graphql - 在没有突变的情况下更新 urql 缓存
我正在开发一个具有 GraphQL 后端并使用 JWT 进行身份验证的全栈项目。我的访问和刷新令牌存储在前端的 localStorage 中。
当用户注销时,我只是从 localStorage 中清除令牌,并且我还想重置获取已登录用户的缓存查询,因此它返回 null (意味着不再有登录用户)。但是,我没有执行突变。一切都发生在客户端。我无法将突变名称放在 urql 的 cacheExchangeupdates
对象中并在执行突变时更新缓存。
我以为我可以在后端添加一个被调用logout
并返回 true 的突变,但我真的相信有一种更优雅的方法可以做到这一点。
reactjs - GraphQL Mutation 仅在我重新加载页面时返回 null
我正在为 ssr 使用 nextJS 和 urqlClient。目前我的所有页面都关闭了 ssr。我面临的问题如下。我有个人资料页面,它在从 graphql 获取用户后呈现数据。如果找不到用户,它将路由器推送用户登录。我面临的问题是,当我使用 localhost:3000/profile 手动转到浏览器中的配置文件页面时,突变在第一次渲染时返回未定义,而在第二次渲染时返回对象。
但是,如果我使用 NavBar 组件访问配置文件页面,<NextLink href="/profile">
则突变会在第一次渲染时返回对象,并且数据会正确显示。我感觉它与 SSR 有关,因为当我重新加载页面时,console.log("profile page", data);
它会在服务器端触发,但当我使用导航栏时它不是。
我将所有页面都包裹在 urqlclient 中
export default withUrqlClient(createUrqlClient, { ssr: false })(Profile);
这是个人资料页面的代码。
svelte - Svelte:数据加载后初始化变量
我在一个食谱网站上工作。食谱有一个默认的份数(例如:4 人)。用户可以更改份量以动态更新食谱的比例。
servings
当我的变量被获取时,我如何在 Svelte 中做到这一点@urql/svelte
?
在 Svelte 中收到数据后,我的想法是defaultServings
根据获取的servings
值创建一个变量。defaultServings
不应该是可更新的。然后我会计算每种成分的比例,例如ingredientQuantity / defaultServings * inputServings
, servings
。(这里,servings
是我绑定到输入组件的获取值。)
我是 Svelte 的新手,我认为我把事情复杂化了。我不知道如何获得执行servings
后的值query(getRecipe)
。query
不返回 Promise,所以我不确定如何等待要在里面获取的值script
。
reactjs - ReferenceError: self 没有使用 React-Pixi 和 Next-urql 定义
使用 Next-Urql 和 React-Pixi 时,我不断收到此错误。我知道这是因为 React-Pixi 需要 WEB API。
服务器错误
ReferenceError: self is not defined 生成页面时发生此错误。任何控制台日志都将显示在终端窗口中。
这是我的代码:
我知道我应该使用动态渲染,但是当我这样做时,我不断收到错误。
next-auth - 使用来自 next-auth 和 @urql/exchange-auth 的 getSession 附加 accessToken
我使用 NextAuth 进行身份验证和 URQL 的 authExchange。这个想法是在Authorization
标题中附加一个 accessToken 。
当我启动服务器时,它会打印[next-auth][error][CLIENT_FETCH_ERROR] https://next-auth.js.org/errors#client_fetch_error request to http://localhost:4200/api/auth/session failed, reason: connect ECONNREFUSED 127.0.0.1:4200
该错误是由 引起的getSession()
,但为什么会发生这种情况,是否有任何潜在的解决方法?
javascript - 使用缓存和网络策略处理表单,我该如何处理这种情况?
我遇到了一个逻辑问题,我不知道如何最好地解决。
假设我有很多待办事项,并且这些待办事项的列表已经缓存在我的手机浏览器上。
当我在地铁上时(网络非常慢)我打开一个来编辑它(然后应用程序从缓存中加载带有待办事项的编辑表单)但是因为我使用“ cache-and-network
”策略并且在我妻子改变它之前不久重新更新自己,撤消我在 textarea 中编写的所有更改。
您认为如何解决这种情况?
我应该等待
cache-and-network
完成才能编辑表格吗?(这对于可能离线的用户体验来说不是很好);我应该警告用户有更新的待办事项吗?
只有当我将它保存在后端的数据库中时,我是否应该警告用户有更新的待办事项?
其他建议?
graphql - Urql svelte 未正确添加查询参数
使用 urql 初始化查询时出现此错误
[GraphqlQL] 必须提供查询
我检查了网络选项卡中的有效负载,看起来 urql 从请求有效负载中删除了查询关键字,这就是它在网络选项卡中的样子:
这是我在 svelte 文件中的查询,它完全是从文档中复制的
这是在 graphiql 中生成的有效负载
query: "query{\n categories{\n id\n name\n }\n}"
任何帮助将不胜感激提前感谢
svelte - Svelte 和 urql: operationStore 不是反应式的?
当从 parent 传递的 prop 发生更改并用作 urql 查询的参数时,查询似乎不会重新执行。
我看到很多例子,例如:
但是为什么似乎没有任何可用的示例,我们只想重新执行查询,因为 prop(上面示例中的变量 id)发生了变化?
我一定是遗漏了一些重要的东西,或者我设计组件的方式是错误的?
vue.js - 在 URQL (Vue) 中组织和构建 GraphQL 查询
我想管理我的查询,使它们不仅仅是我的 .vue 文件中的字符串。目前我将它们作为常量放在 .ts 文件中并导出它们。这很好用,但我还没有找到一种存储单个查询并将它们聚合到一个执行中的好方法。
例如:
这是两个将在服务器上并行执行的查询。我想将它们存储为
和
然后在我使用它们的地方聚合它们,这样我就可以在任何我想要的地方重复使用这些部分。我想我可以只连接字符串,但是有没有内置的 URQL 方法可以做到这一点?