简体   繁体   中英

React GraphQL Relay - How to do a simple query?

The Goal:

I'm trying to query a specific character from a GraphQL server with relay.

The Problem:

The query works in GraphiQL. But here, when running "relay-compiler": "^1.4.1" I'm getting...

ERROR: Parse error: Error: FindGraphQLTags: Operation names in graphql tags must be prefixed with the module name and end in "Mutation", "Query", or "Subscription". Got clientQuery in module Jedi . in "components/Jedi.js"

The Question:

Can't I just query that specific character like in GraphiQL ? How can I achieve this?

The Code:

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
          }
        }
    `
})

Operation names in graphql tags must be prefixed with the module name

You should rename your query (clientQuery) to BlogPostPreviewQuery if BlogPostPreview is the name of your module.

Here are examples. If query is in:

  • /app/foo.js - fooQuery or fooAnythingQuery
  • /app/foo/index.js - fooQuery or fooAnythingQuery
  • /app/Foo/index.js - FooQuery or FooAnythingQuery
  • /app/foo/bar.js - barQuery or barAnythingQuery

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM