问题标签 [relay]
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.
javascript - 如何将 this.state 从组件发送到中继根容器
我想根据this.state.eventid
哪个是子组件来更改我的根查询参数,但我不知道如何获取道具来中继根容器。我是基于relay-starter-kit 开始的。
我有一个有下拉菜单的 React 组件,并且 onSelect 它为 eventId 设置状态
我想使用这种状态以某种方式更改我的根查询...我的 approute... import Relay from 'react-relay';
和我的 app.js
现在我想从 react 组件中的 this.state.eventid 更新我的根查询,但我不知道如何从子组件传递数据来响应 root.container。我不想为此使用 react-router :) ps this.props.events 是通过 ajax 调用传递给我的,因此它们不会保存在 relay/graphql 数据中。
reactjs - 是否可以在没有 ReactJS 的情况下使用 RelayJS 和 GraphQL?
我试图弄清楚是否有一种方法可以在没有 ReactJS 的情况下使用 RelayJS 和 GraphQL。我非常喜欢这三个在数据管理中的工作方式,同时,我期待使用 jeasyUI 来设计我的 Web 应用程序。但问题是 jeasyUI 不能很好地与 reactJS 一起使用。
我是这个问题的新手,所以拜托,拜托,如果你们知道如何处理它。请启发我。对此的任何回应将不胜感激。提前致谢。
caching - 避免在 Relay 中缓存
在https://facebook.github.io/relay/docs/thinking-in-graphql.html文章中有详细的解释Relays 缓存是如何工作的。
但是它没有描述如果我想用相同的查询从服务器数据刷新我的本地存储该怎么做。根据中继逻辑,它将查看查询,在本地找到它并从本地存储返回数据。
但是如何避免缓存并强制 Relay 向服务器发送新请求呢?
cookies - 具有未在 Field_Change 突变上重新加载的参数的中继连接
我的应用程序在启动时加载列表/连接,我正在使用 FB 登录。对于使用 Relay 的身份验证,我设置了一个 cookie,但如果应用程序从后台运行中删除,cookie 会被删除。为避免用户必须再次登录,我正在缓存(AsyncStorage)用户信息,如果用户存在于那里,我将自动登录服务器上的用户,以便我取回我的 Cookie。问题是我需要重置/重新加载连接,我尝试使用 Field_Change 返回父级的突变(它应该包括它的所有子级,但它不加载作为子级的子级的连接)。我还尝试重置/重新创建商店,但也没有成功。该列表已加载到我的起始页上,因此我不会更改页面。
我的连接确实有多个分页参数以及其他参数和一个@include。
我可以让它工作的唯一方法是在定义连接的组件中使用 forceUpdate ,有没有更好的方法?
更新:这是胖查询:
以及突变的配置:
在用户中有没有更新的连接,我没有指定它,因为它有参数,我真的想更新整个用户和它的子对象。
relay - 为什么 Relay 的 NODE_DELETE 不更新剩余节点列表
我有一个从类别列表中NODE_DELETE
删除 a 的 Mutation 。Category
即使它提供了正确deletedIDFieldname
的 ,在我刷新页面之前,类别列表也不会更新。
我在这里想念什么吗?感谢您的任何提示!
reactjs - 在 Relay.js 应用程序中清除缓存以注销
我有一个 Relay 应用程序,我想清除登录后显示的组件的缓存。我尝试将 currentRelay.store 传递到我的 Relay.Router 并实现 currentRelay.reset() 将该存储设置为新的 Relay.Environment ,然后在注销后调用它。由于某种原因,缓存仍然被存储。我还尝试在 componentDidMount() 中调用 this.props.relay.forceFetch({}) 和 this.forceUpdate()。我可以清除缓存的唯一方法是手动刷新页面。我想知道 Relay.Environment 中是否存在错误,或者我做错了。
reactjs - 如何告诉中继更新数据集?
TL;DR: 在阅读了有关 React 和 Relay 的各种资源并使用 react-relay 构建原型应用程序后,我遇到了一个没有帮助就无法解决的问题。这是关于如何告诉突变要保存哪些数据。
我有一个显示User
实体详细信息的组件。它是通过中继查询加载的。该组件有一个<input />
包含用户名的字段和一个触发relay.commitUpdate(...)
调用的保存按钮。每当我在输入字段中更改用户的名称并单击保存时,我可以看到不是更改的而是原始名称被发送到后端。
我正在构建一个应用程序,react-relay
并且我正在开发一个组件,该组件应该显示有关user
实体的详细信息,并且可以更改这些数据并保存它。它是Master-Detail-Pattern的细节部分。
加载和更改数据工作正常。但是更改不会提交到后端。对于数据更新,我正在尝试使用中继突变。
单击保存后,我可以在我的 chrome 浏览器的开发人员控制台中看到,未更改的数据已发送到我的后端。我想念什么?这是我到目前为止所拥有的(Typescript 代码)。
onSaveClick()
(更新:在组件的方法和突变中的方法中放置断点时getVariables()
,我看到在onSaveClick
属性this.props.user
中包含所做的更改,而this.props.user
在getVariables()
返回初始数据。)
解决方案尝试:
我将用户名字的输入字段的行更改为:
并删除了更改事件处理程序并删除了所有state
代码。
我的点击处理程序现在看起来像这样:
我可以看到,传递给突变的用户对象现在具有firstName
我在文本输入中更改的新值。但同样,中继将未更改的内容发送user
到我的后端。这是显示我的问题的屏幕截图:
react-native - 从“relayUnstableBatchedUpdates.js”中找不到模块“react-dom”
当我尝试对我的 react-native 代码运行 Jest 快照测试时收到以下错误
我应该为Relay创建一个模拟吗?是否有任何模拟 Relay 以使用 jest 和 react-native 的代码示例?
mongodb - Graphql 查询数组
我正在尝试使用 graphql 获取坐标数组。我正在使用 relay、mongoose 和 graffiti-mongoose 从这些 mongoose 模型中生成 graphql 类型:
这是生成的graphql(graphql/utilities):
使用 graphiql 我可以得到这个国家的名字:
如何检索 loc 信息?