1

我有以下查询:

import { gql } from 'apollo-boost';
const GetUserInfo = gql`
query getUserInfo($id: MongoID!){
    userById(_id: $id){
      local{
        username
...
    }
  }
`;

export  {GetUserInfo} ;

然后我将查询绑定到我的“React.Component”

import React from "react";
...
import { GetUserInfo } from "../../queries/queries";
import { graphql } from 'react-apollo';



class Dashboard extends React.Component {
  constructor(props) {
    super(props);
...

Dashboard.propTypes = {};



export default graphql(GetUserInfo, {
  options: (props) => {
    return {

          variables: {
              _id: props.ID
      }
    }
  }
})(Dashboard);

我确定 props.ID 等同于 MongoDB ID。我也确定正在读取来自父组件的道具。

上面的代码导致以下错误:

[GraphQL 错误]:消息:所需类型“MongoID!”的变量“$id” 未提供。,位置:[object Object],路径:未定义

控制台错误

任何反馈将不胜感激。谢谢!

4

1 回答 1

3

查询中使用的变量是$id; 查询需要使用在选项中传递的这个变量来执行。

当前,_id传递了一个值,这是一个从未在查询中使用的不同变量。

您可以让两个变量同名。

export default graphql(GetUserInfo, {
  options: (props) => {
    return {

          variables: {
              id: props.ID
      }
    }
  }
})(Dashboard);
于 2019-01-03T06:12:04.397 回答