问题标签 [react-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.
reactjs - 中继现代:重新获取不更新道具
我正在尝试使用createRefetchContainer
Relay Modern。但是道具不会从重新获取查询的结果中传递给我的组件。重新获取查询运行正常,响应将从服务器返回,但 ui 没有得到更新。或者更准确地说,refetch 容器的 props 没有得到更新。
这是我的继电器装饰器:
这是我的重新获取功能:
版本:
javascript - 如何使用 Relay QueryRenderer 道具更新状态
我有一个带有用于更新数据库记录的表单的反应组件。事情是这样的:数据是使用 React-Relay QueryRenderer 组件加载的,如下所示:
如果成功,props 变量应该存储服务器响应的结果。但是,我需要使用 this.state 值调用更新。我需要一种使用道具值设置状态的方法。
我尝试使用 componentDidMount 并使用字符串引用和回调引用来从输入中获取 defaultValue。调用 this.refs 时我得到了未定义的值
目前,如果我在 QueryRenderer 渲染函数中调用一个函数,如果 state 为空,则使用 props 设置状态。例如
但它会导致我需要解决的反模式(纯渲染方法)。
编辑: 对于任何想知道我如何解决这个问题的人。感谢 charlie 的回答,我设法创建了一个 UpdateForm 组件包装器,它接收来自 QueryRenderer 的道具,并且为了更新我父母的组件状态,我将我的 handleChange 函数作为道具传递给了我的 FormUpdate 组件
javascript - Relay-Modern FragmentContainer 数据未填充
我正在使用 Relay Modern 尝试将数据加载到FragmentContainer
. 我正在使用熟悉的 Container (Smart) / Presenter (Dumb) 模式,并且数据没有按预期传递到我的子 Container 中。但是,如果我使用 Relay 的@relay(mask: false)
指令来查看片段的数据是否被正确加载QueryRenderer
,那么片段数据就在那里。
我不明白为什么没有将数据发送到我的容器。任何帮助深表感谢。
ScreenContainer.js
(呈现QueryRenderer
):
ScreenPresenter.js
:
最后,NestedFragmentContainer.js
:
此外,每当NestedFragmentContainer
渲染时,我都会看到它的user
prop 为undefined
. 但是,console.log()
说明它的值其实是null
,而不是undefined
。
有谁知道为什么 FragmentContainer 没有用它的数据呈现?
reactjs - 如何使用 React Relay 处理 CSRF 令牌
我正忙于开发一个 React Native 应用程序,该应用程序与 Django 服务器上的 GraphQL api 对话。
在 React Native 中,我使用 React Relay 尝试处理我的 GraphQL 请求(按照此处找到的指南),但我的请求出现 403 问题。
回复说CSRF token missing or incorrect
,我试图找出让这个工作的最佳方法。
我知道我需要先获取一个 CSRF cookie 令牌,然后以某种方式将它与我的 GraphQL Post 请求一起传递,但运气不佳。我目前的实现如下......
但这仍然给我一个 403 错误。
我似乎找不到更多关于如何解决这个问题的信息。谁能告诉我哪里出错了,或者关于如何解决这个问题的一些建议?
(下面是我的 API 请求的快照)
reactjs - 使用中继现代同构的多个页面
我遵循了这个中继现代同构示例教程:链接
在那个教程中,他们有一个没有路由的页面,
在上面的代码中,它默认登陆localhost:3000
,同样我想添加另一个带有 url 的页面localhost:3000/detailComponent
。但它只会向我显示localhost:3000
页面。那么如何在这里进行路由,有人可以澄清一下吗?
graphql - AddMutation 使用中继现代graphql
我正在尝试使用 relay 添加用户,下面是我的架构文件
schema.graphql
下面是我的变异文件,
AddUserMutation.js
但它给我这个错误
GraphQLParser:
data
类型上的未知字段UserPayload
。来源:文档AddUserMutation
文件:js/mutations/AddUserMutation.js
.
所以我在这里做错了什么,我搜索了许多网站仍然能够找到解决方案。有人可以帮助/澄清我吗?
reactjs - SO Relay QueryRenderer - TypeError:this.props.render 不是函数
我在React中有一个使用Redux和Relay的项目。客户端使用 GraphQL 连接到 API 服务器。我试图使用组件QueryRenderer并且我收到以下错误:
这是源文件:
src/components/HomePage/Header/Header.jsx
src/components/HomePage/Header/FeaturedStores.jsx
src/relay/services/StoreService.jsx
src/relay/queries/FeaturedStoresQuery.js
如何解决此问题并使用QueryRenderer呈现我的组件?
javascript - 中继:查询中断,没有任何错误迹象
我已经开始学习 graphql(在此处添加中继),所以我按照步骤运行中继,我创建了我的第一个查询:
但它失败了,控制台上出现以下错误:
未捕获的类型错误:无法在更新类组件(react-dom)的constructClassInstance(react-dom.development.js:11447)的新ReactRelayQueryRenderer(ReactRelayQueryRenderer.js:74)的fetchQueryAndComputeStateFromProps(ReactRelayQueryRenderer.js:214)处读取未定义的属性'unstable_internal'。 development.js:13144) 在 beginWork (react-dom.development.js:13824) 在 performUnitOfWork (react-dom.development.js:15863) 在 workLoop (react-dom.development.js:15902) 在 HTMLUnknownElement.callCallback ( react-dom.development.js:100) 在 Object.invokeGuardedCallbackDev (react-dom.development.js:138) 在 invokeGuardedCallback (react-dom.development.js:187)
谢谢。
django - Graphene-Django:在模式中结合查询对象(只接受第一个参数)
我正在尝试在 Django 2.1 中组合位于不同应用程序中的多个查询模式。使用 graphene-django 2.2(已经尝试过 2.1 有同样的问题)。蟒蛇 3.7。
Query 类只注册第一个变量。以 shop.schema.Query 为例。
为什么会这样?python 3.7中的类有什么变化吗?石墨烯教程说这将继承多个......
我正在将我的模式导出到 schema.json 以将其与反应中继一起使用。我确实从登录页面(3. 变量)中找到了我的对象“集合”查询模式。继电器返回:
错误:GraphQLParser:
collection
类型上的未知字段Viewer
。来源:文档AppQuery
文件:containers/App/index.js
.
Relay 读取我的 schema.json 是否有问题?