Не удается прочитать свойство ‘GetRequest’ undefined — Relay

#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') делает это динамическим импортом, который возвращает обещание (в зависимости от конфигурации вашего пакета) и вряд ли является тем, что вы хотите.