首页 > 解决方案 > 无法读取未定义的属性“getRequest” - 中继

问题描述

我正在尝试进行第一个中继查询。我做了npm run relaynpm 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;

一切都来自文档设置页面。

标签: javascriptreactjsgraphqlrelay

解决方案


Table.js中,您似乎混淆了导入的语法:

const environment = import('../../environment.js'); // Wrong

const environment = require('../../environment.js'); // OK
import environment from '../../environment.js'; // OK

Usingimport('../../environment.js')使它成为一个动态导入,它返回一个 Promise(取决于你的捆绑器配置)并且不太可能是你想要的。


推荐阅读