我有以下疑问:
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”未提供。,位置:对象对象,路径:未定义
任何反馈都将非常感谢。谢谢!
发布于 2019-01-03 06:12:04
查询中使用的变量是$id
;执行查询时需要在选项中传递此变量。
当前传递的是_id
的值,这是一个从未在查询中使用过的不同变量。
您可以让两个变量具有相同的名称。
export default graphql(GetUserInfo, {
options: (props) => {
return {
variables: {
id: props.ID
}
}
}
})(Dashboard);
https://stackoverflow.com/questions/54017084
复制