【发布时间】:2021-10-15 02:25:03
【问题描述】:
我的代码如下所示:
interface MutationProps{
username: any,
Mutation: any
}
const UseCustomMutation: React.FC<MutationProps> = (MutationProps: MutationProps) => {
const [myFunc, {data, error}] = useMutation(MutationProps.Mutation);
useEffect(() => {
myFunc({variables:{username: MutationProps.username}})
console.log(JSON.stringify(data))
console.log(JSON.stringify(error, null , 2))
}, [])
return data
}
export const DisplayUser = () => {
const GET_USER = gql`
mutation GetUser($username: String!){
getUser(username: $username) {
pfp
username
password
age
CurrentLive
ismod
description
fullname
}
}
`
const {username} : {username: any} = useParams()
const MyData = UseCustomMutation(username, GET_USER)
console.log(JSON.stringify(MyData))
但我得到了这个错误:×
传递给解析器的未定义参数不是有效的 GraphQL DocumentNode。您可能需要使用 >'graphql-tag' 或其他方法将您的操作转换为文档
【问题讨论】:
-
看来您正在使用打字稿。你没有收到来自
UseCustomMutation(username, GET_USER)的明确类型错误吗?! -
另外,不要在
MutationProps界面中使用any。准确! -
谢谢@Bergi,我将 GET_USER 的类型更改为 Document 节点,现在它可以工作了
标签: javascript reactjs typescript graphql graphql-js