问题标签 [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.

0 投票
0 回答
311 浏览

reactjs - 中继现代:重新获取不更新道具

我正在尝试使用createRefetchContainerRelay Modern。但是道具不会从重新获取查询的结果中传递给我的组件。重新获取查询运行正常,响应将从服务器返回,但 ui 没有得到更新。或者更准确地说,refetch 容器的 props 没有得到更新。

这是我的继电器装饰器:

这是我的重新获取功能:

版本:

0 投票
1 回答
1706 浏览

javascript - 如何使用 Relay QueryRenderer 道具更新状态

我有一个带有用于更新数据库记录的表单的反应组件。事情是这样的:数据是使用 React-Relay QueryRenderer 组件加载的,如下所示:

如果成功,props 变量应该存储服务器响应的结果。但是,我需要使用 this.state 值调用更新。我需要一种使用道具值设置状态的方法。

我尝试使用 componentDidMount 并使用字符串引用和回调引用来从输入中获取 defaultValue。调用 this.refs 时我得到了未定义的值

目前,如果我在 QueryRenderer 渲染函数中调用一个函数,如果 state 为空,则使用 props 设置状态。例如

但它会导致我需要解决的反模式(纯渲染方法)。

编辑: 对于任何想知道我如何解决这个问题的人。感谢 charlie 的回答,我设法创建了一个 UpdateForm 组件包装器,它接收来自 QueryRenderer 的道具,并且为了更新我父母的组件状态,我将我的 handleChange 函数作为道具传递给了我的 FormUpdate 组件

0 投票
2 回答
655 浏览

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渲染时,我都会看到它的userprop 为undefined. 但是,console.log()说明它的值其实是null,而不是undefined

有谁知道为什么 FragmentContainer 没有用它的数据呈现?

0 投票
2 回答
1129 浏览

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 请求的快照)

在此处输入图像描述

0 投票
1 回答
43 浏览

reactjs - 使用中继现代同构的多个页面

我遵循了这个中继现代同构示例教程:链接

在那个教程中,他们有一个没有路由的页面,

在上面的代码中,它默认登陆localhost:3000,同样我想添加另一个带有 url 的页面localhost:3000/detailComponent。但它只会向我显示localhost:3000页面。那么如何在这里进行路由,有人可以澄清一下吗?

0 投票
1 回答
1524 浏览

graphql - AddMutation 使用中继现代graphql

我正在尝试使用 relay 添加用户,下面是我的架构文件
schema.graphql

下面是我的变异文件,
AddUserMutation.js

但它给我这个错误

GraphQLParser:data类型上的未知字段UserPayload。来源:文档AddUserMutation文件:js/mutations/AddUserMutation.js.

所以我在这里做错了什么,我搜索了许多网站仍然能够找到解决方案。有人可以帮助/澄清我吗?

0 投票
0 回答
1129 浏览

reactjs - 未捕获的错误:操作没有返回数据``, 有错误

我正在使用 React-Relay。我正在做一个返回错误的突变,这完全没问题,但最后我在控制台中遇到了与 react-relay 库相关的错误。

知道我们如何捕捉/避免它吗?

在此处输入图像描述

0 投票
3 回答
808 浏览

reactjs - SO Relay QueryRenderer - TypeError:this.props.render 不是函数

我在React中有一个使用ReduxRelay的项目。客户端使用 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呈现我的组件?

0 投票
0 回答
258 浏览

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)

谢谢。

0 投票
2 回答
2764 浏览

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 是否有问题?