标签: apollo

GraphQL + Apollo 错误:未捕获(承诺)

我正在尝试通过单击按钮将新数据提交到本地 graphQL API,但出现错误:错误错误:未捕获(承诺中):错误:网络错误:http://localhost:4000/的 Http 失败响应graphql:400 错误请求。

这个想法是,当您按下按钮时,就会提交新数据

  <button type="submit" (click)="onSubmit()" [disabled]="!personForm.valid" id="buttonSubmit" mat-raised-button color="accent"class="floated">Send</button>
Run Code Online (Sandbox Code Playgroud)

onSubmit 函数调用突变

  onSubmit() 
  {
    let id = 5;
    let vorname = 'user';
    let name =  'name';
    let email =  'testt@hotmail.com';
    let status =  'true';
    let activity =  'Office';

    this.apollo.mutate<CreateUserMutationResponse>({
      mutation: CREATE_USER_MUTATION,
      variables: {
        id: id,
        vorname: vorname,
        name: name,
        email: email,
        status: status,
        activity: activity
      }
    }).subscribe((response) => {

    });

    console.log('submitted');

  }
Run Code Online (Sandbox Code Playgroud)

我的 types.ts 中的突变看起来像这样

export const CREATE_USER_MUTATION = gql`
  mutation CreateUserMutation($id: ID!, $vorname: …
Run Code Online (Sandbox Code Playgroud)

javascript typescript apollo graphql

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

如何使用 Nuxt ServerMiddleware 和 Apollo GraphQL 处理 301 重定向

我目前正在构建一个 Vue / Nuxt 应用程序,并结合修改后的 Saleor 安装来在线销售产品。

当我们从现有系统迁移时,我们需要能够处理从旧网站 URL 到新网站 URL 的 301 重定向。

我修改了 API 以响应以下 GraphQL 查询。

export const CHECK_REDIRECTS_QUERY = gql`
  query Redirect($oldPath: String) {
    redirect(oldPath: $oldPath) {
      oldPath
      newPath
    }
  }
`
Run Code Online (Sandbox Code Playgroud)

根据此建议,我在 ~/serverMiddleware/redirect.js 文件中创建了以下代码

import { CHECK_REDIRECTS_QUERY } from '~/graphql/navigation/queries'

export default function(req, res, next) {
  console.log('redirects middleware')
  // context.userAgent = process.server ? context.req.headers['user-agent'] : navigator.userAgent
  this.$apollo
    .query({
      query: CHECK_REDIRECTS_QUERY,
      variables: {
        oldPath: '/test/11/old/'
      }
    })
    .then(({ data }) => {
      if (data.redirect.newUrl …
Run Code Online (Sandbox Code Playgroud)

http-status-code-301 apollo graphql nuxt.js vue-apollo

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

为什么我们需要“cacheRedirects”?

我阅读了有关与缓存数据交互的文档,虽然我了解如何cacheRedirects工作,但我有点困惑为什么首先需要它。这就是我问另一个问题的部分原因:Apollo 客户端是否缓存 React 中的嵌套对象

我们知道数据很可能已经在客户端缓存中,但由于它是通过不同的查询请求的,Apollo 客户端并不知道这一点。

这是为什么?

为了清楚起见,复制粘贴文档中的示例:

query ListView {
  books {
    id
    title
    abstract
  }
}

query DetailView {
  book(id: $id) {
    id
    title
    abstract
  }
}
Run Code Online (Sandbox Code Playgroud)

apollo graphql apollo-client apollo-cache-inmemory

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

NextJS/Typescript/Apollo 错误;类型上不存在属性

我对 NextJS 和 Typescript 相当陌生,并且我\xe2\x80\x99m 实现了无头 CMS Strapi,但在使用 Apollo 时遇到了问题。我整个周末都在谷歌上搜索xe2x80x99,试图更好地理解这个问题。我希望有人能在这里帮助我。

\n\n

错误

\n\n

在我的中收到以下错误_app.tsx

\n\n
Property \'apollo\' does not exist on type \'AppPropsType<Router, {}>\'.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的下面的函数发生了错误MyApp

\n\n

我的_app.tsx

\n\n
import * as React from \'react\'\nimport { AppProps } from \'next/app\'\nimport { ApolloProvider } from \'@apollo/react-hooks\'\nimport withData from \'../../utils/apollo\'\n\nimport \'circular-std\'\nimport \'react-multi-carousel/lib/styles.css\'\nimport \'../scss/styles.scss\'\n\nfunction MyApp({ Component, pageProps, apollo }: AppProps) {\n  return (\n    <ApolloProvider client={apollo}>\n      <Component {...pageProps} />\n    </ApolloProvider>\n  )\n}\n\nexport default withData(MyApp)\n
Run Code Online (Sandbox Code Playgroud)\n\n

相应的Strapi 设置教程位于前端设置第 3 部分。 …

typescript apollo reactjs strapi next.js

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

ApolloGraphQL:useSubscription Hook 语法与 onSubscriptionData?

我正在尝试构建一个useSubscription使用onSubscriptionData.

我看过Apollo 文档,但还没有例子。

例如:

const { loading, error, data } = useSubscription(
    INCOMING_MESSAGES_SUBSCRIPTION_QUERY,
    {
        variables: {"localUserId": Meteor.userId()},
        onSubscriptionData: myFunctionThatRunsWhenSubscriptionDataArrives
    }
);
Run Code Online (Sandbox Code Playgroud)

这还不可能是正确的,因为它不包括OnSubscriptionDataOptions<TData>Apollo 文档中提到的 。

构建useSubscription使用的钩子的正确方法是什么onSubscriptionData

apollo react-apollo apollo-client

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

为什么子字段在不同界面时会发生冲突?

我正在尝试使用 GraphQL(Apollo 服务器)查询单个 MongoDB 文档 ( trivia),但其中一个文档字段遇到问题。

LightningRoundQuestion.answer并且PictureRoundPicture.answer应该返回一个String,并且MultipleChoiceRoundQuestion.answer应该返回一个Int。查看架构:

schema

const typeDefs = gql`
  # ROOT TYPES ==================================================
  type Query {
    trivia(_id: String!): Trivia
  }

  # INTERFACES ==================================================
  interface Round {
    type: String!
    theme: String!
    pointValue: Int!
  }

  type LightningRound implements Round {
    type: String!
    theme: String!
    pointValue: Int!
    questions: [LightningRoundQuestion]
  }

  type MultipleChoiceRound implements Round {
    type: String!
    theme: String!
    pointValue: Int!
    questions: [MultipleChoiceRoundQuestion]
  }

  type PictureRound implements Round { …
Run Code Online (Sandbox Code Playgroud)

node.js apollo graphql graphql-js apollo-server

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

在 React Native 中不能只调用一次函数?

我有一个带有 GraphQL 服务器的 React Native 项目。我正在使用 Apollo Client 从我的 API 获取数据。我创建了这个简单的组件,它从路由参数中获取注册所需的所有数据(形成逐步注册),并进行突变以创建新商店。

export default function AuthRegisterStore({ navigation, route }) {
  const [
    register,
    { loading: validating, error: validationError, data: returnData },
  ] = useMutation(REGISTER, { onError: (e) => Alert.alert(String(e)) });

  const handleRegistration = () => {
    register({
      variables: {
        username: route.params.username,
        password: route.params.password,
        latitude: route.params.latitude,
        longitude: route.params.longitude,
      },
    });
  };

  handleRegistration()

  if (validating) {
    return <Loader />;
  }

  if (validationError) {
    return (
      <View style={styles.container}>
        <Text>Error</Text>
      </View>
    );
  }

  if (returnData) …
Run Code Online (Sandbox Code Playgroud)

javascript apollo reactjs react-native expo

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

@apollo/client 错误 - 在既不是 React 函数组件也不是自定义 React Hook 函数的函数中调用 React Hook“useQuery”

当我使用 @apollo/client 进行 graphql api 调用时出现以下错误

React Hook“useQuery”在函数“graphqlService”中调用,该函数既不是React函数组件,也不是自定义React Hook函数react-hooks/rules-of-hooks

索引文件:

import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';

const client = new ApolloClient({
  uri: "http://localhost:3008",
  cache: new InMemoryCache()
});

 ReactDOM.render(
      <ApolloProvider client={client}>
       <App/>
    </ApolloProvider>,       
        document.getElementById('root')
      );
Run Code Online (Sandbox Code Playgroud)

功能组件文件:

import React from 'react';
import {  
  useQuery,
  gql
} from "@apollo/client";
import Schema from '../models/schema';

function graphqlService( params : any = {} ) {
  const query = Schema.getPanelData;
  const { data } = useQuery(query, {variables: params});

  if (data) return data;     
}
Run Code Online (Sandbox Code Playgroud)

导出默认的graphqlService;

类组件文件: …

apollo reactjs graphql apollo-client

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

Apollo useQuery 挂载组件上的钩子

我是 Hooks 新手,并尝试更多地使用它们

当组件安装时,如何获取数据(使用 Apollo)?

我正在尝试在 useEffect 中使用 useQuery,到目前为止我的代码如下所示

const MyComponent = () => {
  const getME = () => {
      const { loading, error, data } = useQuery(ME);
      setMe(data.me) // useState hook
      console.log('query me: ', me);
  };

  useEffect(getME);
  return (<>
  ...
  </>)
}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误

Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
Run Code Online (Sandbox Code Playgroud)

编辑:这是查询

import { gql } from '@apollo/client';

export const …
Run Code Online (Sandbox Code Playgroud)

apollo graphql react-apollo react-hooks

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

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
查看次数