首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apollo客户端错误|类型'RestLink‘不可分配给类型'ApolloLink’

Apollo客户端错误|类型'RestLink‘不可分配给类型'ApolloLink’
EN

Stack Overflow用户
提问于 2020-05-13 12:52:52
回答 1查看 1.1K关注 0票数 4

现在我正在尝试在typescript中同时使用apolloClient和graphql和rest api。

因此,我应用了apollo-link-rest。但是我得到了下面的错误。

./node_modules/apollo-link-rest/bundle.umd.js找不到模块:无法在'D:\forked\syntegrate_app_client\node_modules\apollo-link-rest‘中解析'graphql-anywhere/lib/async’

代码语言:javascript
复制
Type 'RestLink' is not assignable to type 'ApolloLink'.
  Types of property 'split' are incompatible.
    Type '(test: (op: import("d:/forked/syntegrate_app_client/node_modules/@apollo/client/link/core/types").Operation) => boolean, left: import("d:/forked/syntegrate_app_client/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("d:/forked/syntegrate_app_client/node_modules/@apollo/client/link/core/types")....' is not assignable to type '(test: (op: import("d:/forked/syntegrate_app_client/node_modules/apollo-link/lib/types").Operation) => boolean, left: import("d:/forked/syntegrate_app_client/node_modules/apollo-link/lib/link").ApolloLink | import("d:/forked/syntegrate_app_client/node_modules/apollo-link/lib/types").RequestHandler, right?: import("d...'.
      Types of parameters 'test' and 'test' are incompatible.
        Types of parameters 'op' and 'op' are incompatible.
          Property 'toKey' is missing in type 'import("d:/forked/syntegrate_app_client/node_modules/@apollo/client/link/core/types").Operation' but required in type 'import("d:/forked/syntegrate_app_client/node_modules/apollo-link/lib/types").Operation'.ts(2322)
types.d.ts(24, 5): 'toKey' is declared here.

这是我使用的代码。

代码语言:javascript
复制
const restLink = new RestLink({
    uri: process.env.REST_API
});

const authLink = setContext((_, { headers }) => {
    // get the authentication token from local storage if it exists
    const token = getCookie("token");
    // return the headers to the context so httpLink can read them
    return {
        headers: {
            ...headers,
            STKN: token ? `${token}` : "",
        },
    };
});

const client = new ApolloClient({
    // link: errorLink.concat(restLink).concat(authLink).concat(link),
    link: ApolloLink.from([errorLink, restLink, authLink, link]),
    cache,
    resolvers,
});

这是我的@apollo/客户端版本

代码语言:javascript
复制
"dependencies": {
        "@apollo/client": "^3.0.0-beta.44",
        "@apollo/link-context": "^2.0.0-beta.3",
     "apollo-link": "^1.2.14",
        "apollo-link-batch-http": "^1.2.13",
        "apollo-link-http": "^1.5.16",
        "apollo-link-rest": "^0.8.0-beta.0",
EN

回答 1

Stack Overflow用户

发布于 2021-01-29 03:52:16

如果你想使用apollo-link-rest,你必须使用0.7.3版本并使用apollo-client 2.6.10,这为我解决了这个问题

0.8.0-beta.0已经有一段时间没有更新了,目前还不清楚是否可以维护它以与@apollo/client 3一起正常工作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61766686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档