#javascript #reactjs #graphql #relay
#javascript #reactjs #graphql #реле
Вопрос:
Я пытаюсь выполнить свой первый запрос на ретрансляцию. Я сделал npm run relay
и npm run build
. Все работает хорошо, но в консоли я получаю сообщение об ошибке:
Кто-нибудь знает, что может вызвать эту ошибку?
Обновить.
Table.js (компонент, в котором я хочу сделать запрос)
import React, { Component } from 'react';
import { graphql, QueryRenderer } from 'react-relay';
const environment = import('../../environment.js');
class Table extends Component {
render() {
return (
<QueryRenderer
environment={environment}
query={graphql`
query TableQuery {
users {
data {
name
}
}
}
`}
render={({error, props}) => {
return <div>User: 1</div>;
}}
/>
);
}
}
export default Table;
environment.js (конфигурация реле)
import {
Environment,
Network,
RecordSource,
Store,
} from 'relay-runtime';
function fetchQuery(
operation,
variables,
) {
return fetch('/graphql', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
query: operation.text,
variables,
}),
}).then(response => {
return response.json();
});
}
const network = Network.create(fetchQuery);
const store = new Store(new RecordSource());
const environment = new Environment({
network,
store
});
export default environment;
Все со страницы настройки документов.
Комментарии:
1. Можете ли вы поделиться кодом, который вызывает эту ошибку? Никто не сможет вам помочь, если все, что они могут видеть, это ошибки в консоли.
2. @Matt Я сделал обновление.
Ответ №1:
В Table.js
, похоже, вы перепутали синтаксис для импорта:
const environment = import('../../environment.js'); // Wrong
const environment = require('../../environment.js'); // OK
import environment from '../../environment.js'; // OK
Использование import('../../environment.js')
делает это динамическим импортом, который возвращает обещание (в зависимости от конфигурации вашего пакета) и вряд ли является тем, что вы хотите.