阿波罗中的onCompleted未触发

时间:2019-09-02 22:18:39

标签: reactjs react-apollo

我是新来的人,动身了graphQL和钩子。 因此,我一直在阅读和观看一些有关如何使用它们的教程,我已经完成了一些有效的矿工功能,但是我似乎无法正常工作。

我已经创建了我的客户端,并将其添加到App.js中的提供程序中,如下所示:

      return (
    <div className="App">
      <ApolloProvider client={client}>
        <AuthenticationProvider>
          <Routes />
        </AuthenticationProvider>
      </ApolloProvider>
    </div>
  );

但是我不认为问题出在appJs中。 由于我收到了触发请求,因此可以在浏览器的“网络”标签中看到它。而且我看到我得到了200resp,并且其中包含有效数据。但是在我的验证功能中,我无法调用onCompleted。我想念什么?这是验证组件:

import React, { useState } from 'react';
import gql from 'graphql-tag';
import { graphql } from 'react-apollo';
import './verification.scss';


const Verification = ({ mutate }) => {
  const [mnr, setMnr] = useState('');

  return (
    <div className='verification'>
      <h1>Verification</h1>
      <form
        className='verification--form'
        onSubmit={e => {
          mutate({
            variables: {
              mobile: mnr.toString(),
              callbackUrl: process.env.REACT_APP_CALL_BACK_URL
            },
            onCompleted: data => console.log(data),
            onError: error => console.log(error)
          });
          e.preventDefault();
        }}
      >
        <label>
          mobile:
          <input
            name='mobile'
            type='number'
            value={mnr}
            onChange={e => {
              setMnr(e.target.value);
            }}
            required
          />
        </label>
        <button type='submit' disabled={!mnr.length === 12}>
          Submit
        </button>
      </form>
    </div>
  );
};

const START_VERIFICATION = gql`....`;

export default graphql(START_VERIFICATION)(Verification);

0 个答案:

没有答案