7

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

2 Answers 2

8

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.

Sign up to request clarification or add additional context in comments.

Comments

5

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.