React GraphQL Relay - 如何进行简单查询?

Posted

技术标签:

【中文标题】React GraphQL Relay - 如何进行简单查询?【英文标题】:React GraphQL Relay - How to do a simple query? 【发布时间】:2018-05-08 22:16:49 【问题描述】:

目标:

我正在尝试使用中继从GraphQL server 中查询特定字符。

问题:

查询在 GraphiQL 中工作。但是在这里,当我运行"relay-compiler": "^1.4.1" 时,我得到...

错误:解析错误:错误:FindGraphQLTags:graphql 中的操作名称 标签必须以模块名称为前缀,并以“Mutation”结尾, “查询”或“订阅”。在模块Jedi 中得到clientQuery。在 “组件/Jedi.js”

问题:

我不能像在 GraphiQL 中那样查询那个特定的字符吗?我怎样才能做到这一点?

守则:

import React from 'react'
import  QueryRenderer, graphql  from 'react-relay'

const BlogPostPreview = props => 
 return (
   <div key=props.post.id>props.post.name</div>
 )


export default QueryRenderer(BlogPostPreview, 
post: graphql`
         query clientQuery 
           character(id: 1000) 
             id
             name
             appearsIn
          
        
    `
)

【问题讨论】:

【参考方案1】:

graphql 标签中的操作名称必须以模块名称为前缀

如果 BlogPostPreview 是模块的名称,则应将查询 (clientQuery) 重命名为 BlogPostPreviewQuery。

【讨论】:

【参考方案2】:

以下是示例。如果查询在:

/app/foo.js - fooQueryfooAnythingQuery /app/foo/index.js - fooQueryfooAnythingQuery /app/Foo/index.js - FooQueryFooAnythingQuery /app/foo/bar.js - barQuerybarAnythingQuery

【讨论】:

以上是关于React GraphQL Relay - 如何进行简单查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Relay 容器、react-router 和 GraphQL 按 id 获取和显示项目

未知插件“Relay” - React、GraphQL 和 Relay

如何进行示例 GraphQL Relay 突变

如何将 Realm 与 Relay/GraphQL 一起使用

如何在 Rails 中设置 GraphQL Relay API

带有 Babel 问题的 React/Relay Modern/GraphQL 简单项目设置