3

我正在使用 react-native,并尝试从 apollo-boost 加载 Apollo。当我尝试导入客户端时,我收到错误消息“尝试分配给只读属性”。我不确定如何解决这个问题,从堆栈跟踪来看,它似乎在 apollo-boost 包中。有人知道我该如何解决这个问题吗? 完整的堆栈跟踪

编辑:添加图片和细节。当我尝试通过 Expo 加载应用程序时,我得到了这个。当它开始时,我明白了。我的应用程序中堆栈跟踪提到的第一个文件 StoresScreens,有问题的行只是导入行。

import ApolloClient from 'apollo-boost';
4

2 回答 2

4

我得到了同样的错误。通过使用apollo-client、apollo-cache-inmemory、apollo-link-http包来创建 Apollo 客户端而不是使用 apollo-boost 来解决。

这是代码App.js

import React from 'react'
import ApolloClient from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { HttpLink } from 'apollo-link-http';

const withProvider = (Component) => {

  const cache = new InMemoryCache();
  const link = new HttpLink({
    uri: 'your-url'
  })
  const client = new ApolloClient({
    link,
    cache
  });
  return class extends React.Component {
    render() {
      return (
        <ApolloProvider client={client}>
          <Component {...this.props} client={client} />
        </ApolloProvider>
      )
    }
  }
}
export default withProvider(App);
于 2019-05-24T19:06:16.063 回答
1

至少使用 Typescript,作为临时解决方法,您可以执行以下操作:

import ApolloClient from "apollo-boost/lib/index";

似乎与这个问题有关:https ://github.com/apollographql/apollo-client/issues/4843

于 2019-05-26T13:01:34.643 回答