标签: react-apollo

Apollo 客户端 GraphQL 在 Next.js getStaticProps 上创建静态页面

因此,我通过在 Next.js 上实现 Apollo 客户端来研究 GraphQL,我从未实现过 GraphQL API 或使用过 Apollo,并且在构建和操作查询时遇到了一些问题。我想使用 SpaceX GraphQL 服务器创建一些静态页面,并使用 getStaticProps 和 getStaticPath 从 SpaceX 服务器获取前 10 个结果,从这些路由创建静态页面并获取每个 id 的发射详细信息。我的问题是,我无法使启动详细信息查询工作。服务器响应 400。由于结构正确,问题一定是在将变量传递给查询时出现的。

再说一遍,我从未实现过 Apollo 客户端,并且对 graphQL 有非常初级的了解,并且无法找到使用文档的问题。我的代码基于此示例,我刚刚删除了 useQuery Hook,以便我可以在 getStaticProps 内发出请求。 https://www.apollographql.com/docs/react/data/queries/

// [launchId].tsx
import { initializeApollo } from '../../lib/ApolloClient'


export const getStaticPaths: GetStaticPaths = async () => {
  const apolloClient = initializeApollo()
  const {
    data: { launchesPast }
  } = await apolloClient.query({
    query: gql`
      {
        launchesPast(limit: 10) {
          id
        }
      }
    `
  })
  const paths = launchesPast.map(element …
Run Code Online (Sandbox Code Playgroud)

apollo apollo-server react-apollo apollo-client

2
推荐指数
1
解决办法
2615
查看次数

使用apollo客户端在react.js中上传文件

我试图将文件上传到我的 apollo 服务器,但我无法上传任何文件,也不会引发任何错误,但我在解析器中只收到空对象,当我使用像Altair 这样的GraphQL客户端时,它可以正常工作

使用 Altair 客户端时在服务器中输出

{
    filename: 'Copy of Massive Orange Summer Sale Animated-300x250px-MediumRectangle.png',
    mimetype: 'image/png',
    encoding: '7bit',
    createReadStream: [Function: createReadStream]
}
Run Code Online (Sandbox Code Playgroud)

使用 @apollo/client 包时服务器中的输出

{}
Run Code Online (Sandbox Code Playgroud)

客户代码

客户代码

服务器代码

服务器代码

apollo reactjs graphql apollo-server react-apollo

2
推荐指数
1
解决办法
6521
查看次数

如何使用apollo客户端发出休息后请求?

我知道我们也可以使用 apollo 执行休息请求,但我不知道如何执行发布请求,有人可以帮助我吗?

我的 REST post 请求端点是:<url>/transaction/getbyhash

有效负载:

{"hash":"4e23f9e1d1729996de46fc94d28475b4614f101d72a98f221493f900dc33e0c2"}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我使用 apollo 客户端和 graphql-tag 编写相同的请求吗?

rest apollo apollo-server react-apollo apollo-client

2
推荐指数
1
解决办法
5020
查看次数

将 Next.js 与 redux 和 apollo graphql 结合起来是个好方法吗?

我是 Next.js 和 GraphQL 世界的新手。到目前为止,我一直在使用 React 与 reduxjs 和 axios 进行 API 调用。我会学习更高级的东西,所以这是我的问题。如果我使用 apollo graphql,我有哪些本地状态管理选项?它可以由 apollo 本身处理,还是我应该使用像 redux store 这样的外部工具?

apollo reactjs graphql react-apollo apollo-client

2
推荐指数
1
解决办法
1183
查看次数

当 fetchPolicy 不是 'no-cache' 时,Apollo 客户端仅返回 { __typename: 'Typehere' }

我有一个查询返回下面的示例数据

{ 
  __typename: 'Typehere',
  name: 'type',
  address: 'address type'
}
Run Code Online (Sandbox Code Playgroud)

当我使用useQueryfetchPolicy: 'cache-first' 选项时,GQL API 返回正确的数据。但是当我使用 console.log(response) 时,数据现在将转换为

{ 
  __typename: 'Typehere'
}
Run Code Online (Sandbox Code Playgroud)

fetchPolicy 的 API 调用和响应:“缓存优先” 在此输入图像描述

控制台.log(响应) 在此输入图像描述

为什么会发生这种情况?

我尝试使用 fetchPolicy: 'no-cache' 获取数据并且没有问题,但是,我需要缓存它以进行优化。我还尝试了阿波罗客户端文档中所述的其他获取策略。

apollo react-apollo apollo-client

2
推荐指数
1
解决办法
902
查看次数

如何使用反应apollo组件进行单元测试?

我想用mocha,jsdom chai和酶进行单元测试.我已经进行了一些单元测试并且运行良好.

但是,连接到apollo存储的组件不起作用...我有一个错误.

这是一个连接到apollo商店的组件测试:

import React from 'react';
import { expect } from 'chai';
import { shallow } from 'enzyme';
import sinon from 'sinon';

import ReviewList from '../../src/components/tibco/review-list/review-list';
import NewReview from '../../src/components/tibco/review-list/new-review';

const data = {
  loading: false,
  allCodeReviews: {
    edges: {
      node: {
        id: "Q29kZVJldmlld05vZGU6MQ==",
        reference: 4545,
        reviewer: "John",
        revisionDate: "2016-11-25",
        redmineUrl: "http://url.4545.com",
        flow: {
          id: "Rmxvd05vZGU6MQ==",
          name: "foo"
        }
      }
    }
  },
  allUsers: {
    edges: {
      node: {
        username: "John"
      }
    }
  },
  allFlows: …
Run Code Online (Sandbox Code Playgroud)

mocha.js jsdom reactjs graphql react-apollo

1
推荐指数
2
解决办法
3523
查看次数

Redux + Apollo:如何规范化和格式化响应数据?

我正面临着以我想要的格式将数据导入组件的困难.

我的数据来自:

在此输入图像描述

对于我的组件,它不是一种非常有用的格式.我希望数据被id键为suc:

assets: {
  "2a4a34sdf3dd": {
    //asset data
  }
}
Run Code Online (Sandbox Code Playgroud)

我的查询是:

const query = gql`{
  assets {
    body
    id
  }
}`
Run Code Online (Sandbox Code Playgroud)

我这样连接我的组件:

export default compose(
  graphql(query),
  connect(mapStateToProps, mapDispatchToProps)
)(AssetList);
Run Code Online (Sandbox Code Playgroud)

有关如何格式化我的graphql服务器返回的商店数据的任何见解?

javascript apollo graphql react-redux react-apollo

1
推荐指数
1
解决办法
1532
查看次数

为什么在data.fetchMore期间data.loading不会变为true?

内部渲染:

  console.log('render', User.length, loading, networkStatus)
Run Code Online (Sandbox Code Playgroud)

当我打电话data.fetchMore两次时,我得到:

render 100 false 7
render 200 false 7
render 300 false 7
Run Code Online (Sandbox Code Playgroud)

而我期望:

render 100 false 7
render 100 true 1
render 200 false 7
render 200 true 1
render 300 false 7
Run Code Online (Sandbox Code Playgroud)

loading在此示例中,它按预期方式工作(变为true):

https://github.com/zeit/next.js/tree/v3-beta/examples/with-apollo

但不在我的代码中:

https://out-bkathectgx.now.sh/

https://github.com/lorensr/graphql-leaderboard/tree/a331af803b36ee2d65c85795d747e6cf4c83ba27

文件:

https://github.com/lorensr/graphql-leaderboard/blob/a331af803b36ee2d65c85795d747e6cf4c83ba27/components/ReputationLeaderboard.js

docs:data.networkStatus

docs:data.loading

react-apollo apollo-client

1
推荐指数
1
解决办法
1094
查看次数

如何在Apollo-Client中进行查询?

使用REST-API,我们可以进行获取查询,而不是对服务器进行查询。我使用“ Apollo-client”,但是我想创建查询而不将查询连接到组件。我可以做吗?可能我应该使用方法client.query(http://dev.apollodata.com/core/apollo-client-api.html#ApolloClient.query)和client.mutate或类似的方法?

apollo graphql react-apollo

1
推荐指数
1
解决办法
994
查看次数

将结果写入存储以供查询时出错.无法读取undefined的属性'query'

在突变后编写查询以存储时,我收到错误.突变起作用,我能够读取突变后的查询.当我将相同的查询写入商店缓存时,我得到以下错误:

index.js:2178 Error: Error writing result to store for query:
 query ($applicationId: Int) {
  vApplicationApprovalChainList(ApplicationId: $applicationId) {
    id
    approvalOrder
    approverId
    name
    applicationId
    __typename
  }
}

Cannot read property 'vApplicationApprovalChainList' of undefined
    at writeToStore.js:101
    at Array.forEach (<anonymous>)
    at writeSelectionSetToStore (writeToStore.js:97)
    at writeResultToStore (writeToStore.js:75)
    at InMemoryCache../node_modules/apollo-cache-inmemory/lib/inMemoryCache.js.InMemoryCache.write (inMemoryCache.js:99)
Run Code Online (Sandbox Code Playgroud)

这是我的代码..突变和store.readQuery工作,但store.writeQuery给出了上述错误.提前感谢您的任何反馈.

APPROVERSLIST_QUERY = gql`
query ($applicationId:Int){
 vApplicationApprovalChainList(ApplicationId:$applicationId){
  id
  approvalOrder
  approverId  
  name
  applicationId  

  }
}

`;


 handleClick() {
        const { row, mutate} = this.props;
        mutate({
            variables: {
                id: row.id
            },
            update: (store, …
Run Code Online (Sandbox Code Playgroud)

graphql react-apollo apollo-client

1
推荐指数
1
解决办法
1366
查看次数