我有突变-
`export const setTimeLineOnUser = gql
mutation ($tID: ID!, $uID: ID! ){
setTimeLineOnUser(userTimeLineId: $tID, timeLineUserId: $uID){
userTimeLine {
id
updatedAt
posts{
id
postType
updatedAt
}
}
timeLineUser {
id
name
email
}
}
};`一个像这样的函数-
`this.props.createTimeLine().then((response) => {
console.log(response.data.createTimeLine.id);
this.addTimeLineToUser(response.data.createTimeLine.id, this.props.userQuery.user.id);
});`用户有一个像这样的一个-to one关系-
`setTimeLineOnUser(userTimeLineId: ID!, timeLineUserId: ID!): SetTimeLineOnUserPayload`我在跑步的时候发现了这个错误-
错误: GraphQL错误:变量'$tID‘类型的期望值'ID!’但是价值是没有定义的。原因:预期为非空值,发现为空.(第1行,第11列):突变($tID: ID!,$uID: ID!) {^ GraphQL错误:变量'$uID‘类型的期望值'ID!’但是价值是没有定义的。原因:预期为非空值,发现为空.(第1行,第22栏):突变($tID: ID!$uID: ID!) {^ at new ApolloError (apollo.umd.js:1959) at apollo.umd.js:2670 at tryCallOne (core.js:37) at core.js:123 at JSTimers.js:117 at Object.callTimer (JSTimersExecution.js:95) at Object.callImmediatesPass (JSTimersExecution.js:199) at Object.callImmediates (JSTimersExecution.js:214)在MessageQueue.js:228 at MessageQueue.__guard (MessageQueue.js:218)
尽管console.log(this.props.userQuery.user.id);正在返回有效的ID!我甚至尝试进行变异,将I分配给状态,这样它们可能不是空的,但仍然没有用!我做错什么了?
如果你想看到文件在这里- 要旨
发布于 2017-05-13 12:23:44
问题是,当您调用addTimelineToUser时,您会给出一个对象,但是您需要这两个参数。
componentDidMount(){
this.props.createTimeLine().then((response) => {
// this.addTimeLineToUser({ tID: response.data.createTimeLine.id, uID: this.props.userQuery.user.id }) wrong
this.addTimeLineToUser(response.data.createTimeLine.id, this.props.userQuery.user.id)
});
}
addTimeLineToUser = (tId, uId) => {
this.props.setTimeLineOnUser({variables: {tId, uId}})
.then((response) => {
console.log(response);
}).catch((err) => {
console.log(err);
});
};
这可能不起作用,因为我不确定查询是否加载在组件中,因此挂载函数。
https://stackoverflow.com/questions/43952752
复制相似问题