使用中继反应本机 graphql 查询:未收到获取的数据
Posted
技术标签:
【中文标题】使用中继反应本机 graphql 查询:未收到获取的数据【英文标题】:React Native graphql query with relay: fetched data not received 【发布时间】:2017-01-10 09:02:56 【问题描述】:我有以下疑问:
query
viewer
place(id: "1a4871311fe990d6d94cf1eed9fd65008856e118b790e7dcf728d86bc3aef7ec")
name
这当然可以在 GraphiQL 上正常工作。我想在 Relay 容器中使用这个查询,所以我创建了一个 RootContainer:
<RootContainer
Component=PlaceDetailsComponent
route=new PlaceDetailsRoute(placeID: this.props.id)
renderFetched=(data) =>
console.log('data: ', data);
return (
<PlaceDetailsComponent ...this.props ...data/>
)
renderLoading=() => <ProgressBar visible=true />/>
成功获取数据,但我在控制台上看到的只是:
data: placeID: '1a4871311fe990d6d94cf1eed9fd65008856e118b790e7dcf728d86bc3aef7ec',
viewer:
__dataID__: 'Vmlld2VyLXs6aWQ9PiJ2aWV3ZXIifQ==',
__fragments__: '1::client': [ ]
所以我检查了实际发送到服务器的内容和收到的内容,我觉得一切正常:
这是我的路线:
import Relay,
Route
from 'react-relay';
class PlaceDetailsRoute extends Route
static queries =
viewer: () => Relay.QL`
query
viewer
`
static routeName = 'PlaceDetailsRoute'
export default PlaceDetailsRoute;
这是我的片段:
Relay.createContainer(PlaceDetailsContainer,
fragments:
viewer: () => Relay.QL`
fragment on Viewer
place(id: "1a4871311fe990d6d94cf1eed9fd65008856e118b790e7dcf728d86bc3aef7ec")
name,
`
);
任何建议我应该改变什么?提前感谢您的帮助!
【问题讨论】:
什么工具使用从 react-native 调试 graphql 查询(参考您附加的图片)?迫切需要这样的东西。谢谢。 @user3740387 - 那是查尔斯,你可以在这里下载:charlesproxy.com 【参考方案1】:这实际上是预期的行为。 Relay documentation of renderFetched
有注释:
尽管我们可以访问
renderFetched
中的data
对象,但实际数据是故意不透明的。这可以防止renderFetched
创建对Component
声明的片段的隐式依赖。
希望这能消除您的困惑。
【讨论】:
我很高兴听到这个消息!以上是关于使用中继反应本机 graphql 查询:未收到获取的数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 graphql 在 react-native 中重新获取查询
当我在服务器端更新架构时,中继/GraphQL 架构缓存未更新
prisma - 运行 graphql 查询时获取环境变量未找到错误消息
尝试从反应应用程序连接到 graphcool 中继 API 时出现此错误:模块构建失败:错误:没有有效的 GraphQL 端点