2016-10-17 1 views
0

Будучи очень новым для GraphQL, у меня есть реализация графена django сервера с двумя моделями, следуя довольно близко graphene docs' example.gephene django relay: Ошибка преобразования реле

В графике я могу это сделать и получить результат обратно.

enter image description here

После другой relay tutorial, я намерен вынести результат этого запроса на экране.

Моя попытка выглядит следующим образом: консоль

class Note extends Component { 
    render() { 
    return(
     <div> {this.props.store.title} </div> 
    ) 
    } 
} 

Note = Relay.createContainer(Note, { 
    fragments: { 
    store:() => Relay.QL` 
     fragment on Query { 
     note(id: "Tm90ZU5vZGU6MQ==") { 
      id 
      title 
     } 
     } 
    ` 
    } 
}); 

class NoteRoute extends Relay.Route { 
    static routeName = 'NoteRoute'; 
    static queries = { 
    store: Component => { 

     return Relay.QL` 
     query { 
     ${Component.getFragment('store')} 
     } 
    `}, 
    }; 
} 

мой браузер показывает следующее сообщение об ошибке:

Uncaught Error: Relay transform error ``There are 0 fields supplied to the query named `Index`, but queries must have exactly one field.`` in file `/Users/.../src/index.js`. Try updating your GraphQL schema if an argument/field/type was recently added.

Я пытался понять это мое с ограниченным успехом.

Может кто-нибудь указать мне в правильном направлении?

+1

Я думаю, что Relay не разрешает фрагменты 'on Query'. В вашем «NoteRoute» вам нужно одно и ровно одно поле запроса. – stubailo

ответ

0

Спасибо @stubailo за то, что указали мне в правильном направлении. Я сделал некоторые настройки, и теперь у вас есть минимальный пример:

NoteList = Relay.createContainer(NoteList, { 
    fragments: { 
    store:() => Relay.QL` 
     fragment N on NoteNodeConnection { 
     edges { 
      node{ 
      id 
      title 
      note 
      } 
     } 
     } 
    ` 
    } 
}); 

class NoteRoute extends Relay.Route { 
    static routeName = 'NoteRoute'; 
    static queries = { 
    store: Component => { 

     return Relay.QL` 
     query { 
     notes { 
      ${Component.getFragment('store')} 
     } 
     } 
    `}, 
    }; 
} 
Смежные вопросы