首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用react js在Apollo客户端中更改属性时未调用查询

在使用React JS在Apollo客户端中更改属性时未调用查询的情况下,可能是由于以下几个原因导致的:

  1. 缓存问题:Apollo客户端使用缓存来提高性能,当更改属性时,如果缓存中已经存在相同的查询结果,Apollo可能会直接从缓存中获取数据而不重新发起查询。这可能导致在更改属性后未调用查询。解决这个问题的方法是使用Apollo提供的refetchQueriesupdate选项来手动触发查询。
  2. 更新问题:在更改属性时,可能没有正确地更新Apollo客户端的缓存。这可能是由于未正确使用Apollo提供的writeQuerywriteFragment方法来更新缓存。确保在更改属性后,手动更新Apollo客户端的缓存以反映更改。
  3. 订阅问题:如果在更改属性时使用了Apollo的订阅功能,可能是由于订阅未正确设置或未正确处理订阅的更新事件。确保正确设置和处理订阅以确保在更改属性时调用查询。
  4. 组件更新问题:React组件的更新是基于其props和state的变化。如果更改属性未导致组件的props或state发生变化,React可能不会重新渲染组件,从而导致未调用查询。确保更改属性后,组件的props或state发生变化,以触发重新渲染。

综上所述,如果在使用React JS在Apollo客户端中更改属性时未调用查询,可以检查缓存、更新、订阅和组件更新等方面的问题。根据具体情况,使用Apollo提供的相应方法或选项来手动触发查询或更新缓存。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

redux 应用中使用 GraphQL

正如 Sashko Stubailo 指出的: 不幸的是, Redux 应用程序异步加载服务器数据的模式还没有建立起来,并且经常需要使用外部帮助程序库,如 redux-saga。...您需要编写自定义代码来调用服务器接口,解释数据,对其进行规范化并将其插入到存储 - 同时跟踪各种错误和加载状态。 本教程,您将学习如何通过 Apollo Client 来获取和管理数据。...客户端正在运行,现在是开始添加 GraphQL 客户端的时候了。我们的目标是使用 GraphQL 查询,从服务器轻松获取数据并将其呈现在着陆页(HomeView)。 3....增加一个 GraphQL 客户端Apollo 客户端) 安装 apollo-client, react-apollo, 和 graphql-tag。... mapQueriesToProps 连接到 ApolloClient 之后,查询语句将会在 HomeView 被渲染自动从后端获取数据,然后通过 props 将数据传递下去。

1.9K10

GraphQL最突出的架构优势是什么?

Apollo-link-state(现已直接放入 Apollo Client 2 和 3 )让开发人员可以编写几乎同时解决远程状态和本地状态的查询。远程状态(位于服务器上)感觉比之前近多了。...比如说用这种查询来按照狗的品种(breed)来获取一只狗: 查询 /dog.js const GET_DOG = gql` query GetDogByBreed($breed:...,我们可以使用 @client 指令来引用要基于一个客户端模式从本地缓存获取的属性。...数据图从客户端延伸到服务器,并为现代 Web 应用程序获取数据和更改状态面临的最常见基础架构问题提供了答案 为了通过 GraphQL 与后端服务通信,Apollo Client 公开了几种客户端方法... Apollo Server 端,这些 API 调用将控制权转交给负责使用 ORM、原始 SQL、缓存、其他 RESTfulAPI 或任何你想到的方法来获取数据的解析器。

2.1K20

【译】Graphql, gRPC和端对端类型检验

只需要在我们的schema增加查询(queries)和变更(mutations)字段,就可以应用中使用(consuming)这些数据了。...使用apollo-client和react-apollo简化了前端代码对缓存和数据的管理。 灵活的查询方式方便我们未来构建移动端以及内部应用。...gPPC,.proto文件用来描述后端服务的可调用方法名,以及这些方法输入输出的字段类型。...为了保证GraphQL server和前端之间的类型安全,我们使用Apollo CLI的代码生成器:使用命令行来生成我们所有GraphQL查询的类型: React示例 我们的应用需要用到三种查询:...然而,不像.jsx/.js之间那样宽松,当文件包含任何JSX代码,你必须使用.tsx扩展名,这样TypeScript才能消除JSX和其他TypeScript语言特性之间的歧义。

3.1K20

用TS+GraphQL查询SpaceX火箭发射数据

本文将引导你使用 ReactApollo 构建客户端应用程序,并调用 SpaceX 的公共 GraphQL API ,来显示有关的发射信息。...apollo-boost 包含了查询 API 和在内存缓存数据所需的工具, react-apolloReact提供绑定, react-apollo-hooks React Hook 包装了...我们还可以 playground 上测试带变量的查询查询名的后面,你可以通过使用前缀为$及类型去指定变量,然后查询,你可以使用该变量。...初始化Apollo客户端 src/index.tsx ,我们需要初始化 Apollo 客户端并用 ApolloProvider 组件将 client 添加到 React 的上下文中。...最后一步是 id 改变 refetch 数据。 LaunchList/index.tsx 文件,我们将用 useEffect 来管理 React 生命周期,并在 id 更改时触发提取。

3K20

GraphQL+Koa2实现服务端API结合Apollo+Vue

Scala、Ruby 客户端语言:jsReact + React Native、Angular、Vue.jsApollo Link、Native iOS、Native Android、 Scala.js...将它与vue-apollo和graphql一起安装: npm install vue-apollo graphql apollo-boost --save src/main.js引入apollo-boost...控制台查看查询结果 src/main.js配置vue-apollo插件 import VueApollofrom'vue-apollo' Vue.use(VueApollo); 创建Apollo...provider Provider保存了可以接下来被所有子组件使用Apollo客户端实例 const apolloProvider = newVueApollo({     defaultClient...:h=>h(App) }) 简单查询 组件加载的时候就会去服务器请求数据,请求的数据会放在navList这个属性上面,模板可以直接使用当前属性 简单查询文档 带参数查询参考 import gql from'graphql-tag

5.1K42

为什么我使用 GraphQL 而放弃 REST API?

当你的团队冲刺期间决定重命名或重新安排对象字段,你能负担得起上线/api/v1.99端点的成本吗?即使完成了,团队会不会忘记更新规范并通知客户端开发人员更新内容?...一些后端数据库会暴露要传递给下一页查询的游标或标记。请查看 Elasticsearch API,该 API 建议需要依次浏览大量结果文档使用scroll调用。还有一些 API 头中传递相关信息。...对一个稳定且广泛使用的 API 来说,这没什么大不了的,但是敏捷流程的开发过程,这就比较糟糕了。文档单独存储意味着,它经常不会更新,特别是当更改是一个小的、但会破坏客户端更改时。...它可以帮助解决我前面提到的客户端和服务器团队之间的沟通问题。只要 GraphQL 模式中有任何更改,你就可以 GraphQL 浏览器中看到它,就像嵌入式 API 文档。...由于 Apollo 客户端库架构简单,我能够将一个使用 React.js 与 Redux 的应用慢慢过渡到 React Apollo,一个组件一个组件的,只在有意义的时候才这样做。

2.3K30

React 设计模式 0x6:数据获取

它是同构的(即可以浏览器和 nodejs 中使用相同的代码库)。服务器端,它使用本地的 node.js http 模块,而在客户端(浏览器),它使用 XMLHttpRequests。...然而,当组件重新渲染,这些数据并不总是需要重新计算或重新获取。有几种方法可以 React 实现数据缓存。...简单来说,Memoization 是指将结果存储在内存。Memoization 函数通常更快,因为如果使用相同的参数再次调用函数,则不会重新执行函数,而是从缓存获取结果。... React ,我们可以通过以下两种方式实现 Memoization: useMemo React 提供了一个内置的钩子函数 useMemo 允许您对耗费性能的函数进行记忆化,以避免每次重新渲染时调用它们...从 API 缓存的数据可以存储我们的状态管理,然后我们的应用程序全局使用。尽管数据被缓存,但在刷新页面,它将丢失数据,需要重新获取。

1.2K20

怎样使用 apollo-link-state 管理本地数据

我们可以使用 GraphQL mutation 来表述应用状态的变化过程,而不是去发送某个 action。查询应用状态,GraphQL query 也能以一种声明式的方式描述出组件所需要的数据。...Apollo Link 使得 Apollo Client 管理本地的数据成为可能,从一个 GraphQL 服务器获取数据,可以使用 HttpLink,而从 Apollo 的缓存请求数据,则需要使用一个新的...Resolvers 使用 Apollo Client 管理应用状态后,Apollo cache 成为了应用的单一数据源,包括了本地和远端的数据。那么我们应当如何查询和更新缓存的数据呢?...apollo-link-state 使用 @client 指令来标记只需存在于客户端本地的字段,然后,apollo-link-state 会在这些字段上调用相应的 resolver 方法。 ....以上代码使用 @client 指令查询 Apollo cache。 我们 最新的文档页,可以找到更多的例子,以及一些将 apollo-link-state 集成应用的小贴士。

2.3K100

2023 React 生态系统,以及我的一些吐槽……

这通常意味着将基于组件的状态和副作用凑合在一起,或者使用更通用的状态管理库应用程序存储和提供异步数据。 虽然大多数传统的状态管理库非常适合处理客户端状态,但在处理异步或服务器状态时效果不佳。...首先,服务器状态具有以下特点: 以你无法控制或拥有的远程位置持久存储 需要使用异步 API 进行获取和更新 暗示共享所有权,并且可能被其他人在你不知情的情况下更改 如果不小心处理,可能会在应用程序变得...核心的 @apollo/client 库提供了与 React 的内置集成,而更大的 Apollo 社区则维护了与其他流行的视图层的集成。 应该是用 GraphQL 的状态管理最佳选择。...Redux-Form 每次按键都会多次调用整个顶层 Redux reducer。...不是因为我认为 React 实现表单方面采取了错误的方法,而是因为使用 React ,表单是最具挑战性的问题。 许多框架都有自己的解决方案来处理表单。AngularJS 在这方面做得非常好。

54830

2020 年你应该知道的 React

所有 React 的内置 hooks 都非常适合本地状态管理。当涉及到远程数据的状态管理,如果远程数据带有 GraphQL 端点,我建议使用 Apollo Client。...当您的应用程序增大,可以使用它来代替本地获取 API。 如果您有足够的时间来处理 GraphQL API,我建议您使用 Apollo Client。...第三种也是最流行的方法是使用 Prettier。它是一个强制的代码格式化程序。您可以将其集成到编辑器或 IDE ,使其每次保存文件格式化您的代码。...建议: ESLint Prettier React 认证 较大的 React 应用程序,您可能希望引入具有注册、登录和退出功能的身份验证。此外,密码重置和密码更改功能往往是需要的。...,我只能想到以下内容,因为我没有 React使用任何其他内容: Draft.js Slate React 的支付 和其他网络应用一样,最常见的支付提供商是 Stripe 和 PayPal。

14.4K40

「首席架构师推荐」React生态系统大集合

- 允许您检查React组件的所有道具的库 react-responsive - 媒体查询响应响应式设计 react-is-responsive - 一种React创建响应组件的实用程序 react-cursor...库 avers - 一个现代客户端模型抽象库 imvvm - React的不可变模型 - 视图 - 视图模型 morearty.js - 纯JavaScript更好地管理React valuable...ClojureScript的不可变数据库和Datalog查询引擎 immstruct - 不可变数据结构,具有基于组件的库(如React从上到下属性的历史记录 seamless-immutable...CoffeeScript实现Flux React:Flux Architecture 了解Flux FluxReact.js架构 - Flux VS Reflux 避免单页应用程序的事件链...建模查询 Thin and Graphy GraphQL概述 - GraphQL和Node.js入门 使用GraphQL编写基本API 使用Node.js和SQL构建GraphQL服务器 GraphQL

12.3K30

GraphQL到底怎么使?看看智联前端团队技术沉淀

此文是作者考虑 GraphQL Node.js 架构的落地方案后所得。...而在研究 GraphQL 发生的的误解在于: 规范、教程提到 query(查询,无法确认是指客户端客户端发出的 Query Document 整个操作还是,Document 的 query 操作...关联与差异 同:介绍 Apollo 和 type-graphql ,跳过了执行部分的展示,是因为这两种实现生成的可执行 Schema 和 graphql-js 的是通用的,查看这两者最终生成的可执行...调用合并:经常提到的与 RESTful 相比较优的一点是,当需要获取多个关联数据,RESTful 接口往往需要多次调用(并发或串行),而基于 GraphQL 的接口调用则可以将调用顺序体现在结构化的查询...版本控制:客户端结构化的查询方式可以让服务追踪到字段的使用情况。且增加字段,根据结构化查询按需查询的特点,不会影响旧的调用(虽然 JavaScript 对多了个字段的事情不在意)。

2.3K20

天天接触RESTful?来试试Graphql

实际的项目可能使用 egg 或者 koa 或者 express。...resolver 的解析规则是, 从外到内依次处理查询块,为每一个查询块执行对应的 resolver 函数,并传递外层调用返回的结果作为第一个参数,也就是下面代码的 obj 。...:查询传入的参数 // context:这是特定查询中所有解析程序共享的对象,用于包含每个请求的状态,包括身份验证信息,数据加载器实例以及解析该查询应考虑的任何其他内容 // info:此参数仅在高级情况下使用...更多内容查看 resolver 文档[3] 然后我们 http://127.0.0.1:4000/graphql 或者客户端 GraphiQL 测试 ?...更多查询变更可看官方文档[4] 进阶 实际项目中,我们会将数据库 ,dataloaders 注入到 context ,方便所有 resolver 调用

1.9K20

聊一聊 2024 年 React 生态系统

建议: Vite:适用于客户端渲染的 React 应用 Next.js:适用于服务端渲染的 React 应用 Astro:适用于静态生成的 React 应用 包管理 如果你正在寻找 JavaScript...当需要从前端调用后端,可以使用类型化的函数。...当在 React 通过 React Router 使用客户端路由路由级别上引入代码分割并不复杂。如果进行此类优化,可以使用@loadable/component替换React.lazy()。...建议: ESLint + Prettier 给 Biome 一个机会 身份验证 React 应用实现身份验证功能,通常涉及到用户注册、登录、注销以及可能的密码重置和密码更改等功能。...如果倾向于使用 Vite,Vitest 是一个值得考虑的 Jest 替代方案。 测试框架渲染 React 组件,可以使用 react-test-renderer。

61810
领券