Почему я получаю Аргумент undefined, переданный парсеру, не является допустимым GraphQL DocumentNode?
Я делаю импорт GraphQL запрос как:
import {getStudents} from'./../graphql/Queries.graphql'
Файл Queries.graphql:
query getStudents($schoolID: Int!){
allStudents(schoolId: $schoolID){
pickUpLat
pickUpLng
}
}
но когда я пытаюсь передать запрос компоненту как:
export default graphql(getStudents, {
options: (props) => ({ variables: { schoolID: props.schoolID } })
})( StudentsMap );
Я получаю эту ошибку:
Uncaught Error: Argument of undefined passed to parser was not a valid GraphQL DocumentNode. You may need to use 'graphql-tag' or another method to convert your operation into a document
at invariant (browser.js:38)
at parser (react-apollo.browser.umd.js:199)
at graphql (react-apollo.browser.umd.js:1061)
at Object../src/map/StudentsMap.js (StudentsMap.js:96)
at __webpack_require__ (bootstrap b06dc52180087582baaa:19)
at Object../src/App.js (App.css?9a66:26)
at __webpack_require__ (bootstrap b06dc52180087582baaa:19)
at Object../src/index.js (index.css?f255:26)
at __webpack_require__ (bootstrap b06dc52180087582baaa:19)
at Object.0 (registerServiceWorker.js:117)
Однако, если я определю запрос в том же файле компонента (не импортируя его), как:
const getStudents= gql`
query getStudents($schoolID: Int){
allStudents(schoolId: $schoolID){
pickUpLat
pickUpLng
}
}`
тогда он работает нормально, есть идеи, почему я получаю эту ошибку при попытке импортировать запрос?
Вот мой webpack.config.js
Настройки: (на основании этой ссылки)
var webpack = require('webpack');
module: {
rules: [
{
test: /\.(graphql|gql)$/,
exclude: /node_modules/,
loader: 'graphql-tag/loader',
},
],
}
Кажется, что загрузка запросов с Webpack не удается? или что это может быть?
1 ответ
Для файлов с одним запросом загрузчик обеспечивает экспорт по умолчанию вместо именованных, то есть:
import getStudents from'./../graphql/Queries.graphql'
Я хочу сказать, что это было исправлено в версии 2.8.0, но, возможно, вы используете более старую версию библиотеки.