【发布时间】:2020-09-22 17:51:36
【问题描述】:
我尝试将变量传递给我在反应项目中的突变。它是工作静态代码:
const EDIT_WORD = gql`
mutation {
editWord(
eng_word: "apple"
data: { eng_word: "apple1", ru_word: "яблоко1" }
) {
eng_word
}
}
...
const [editWordHook] = useMutation(EDIT_WORD);
...
editWordHook();
这是有错误的代码:
const EDIT_WORD = gql`
mutation($eng_word: String!, $data: wordInput!) {
editWord(
eng_word: $eng_word
data: { eng_word: $eng_word, ru_word: $ru_word }
) {
eng_word
}
}
`;
...
const [editWordHook] = useMutation(EDIT_WORD);
...
editWordHook({
variables: {
eng_word: editedWord,
data: {
eng_word: englishWordText,
ru_word: russianWordText,
},
},
});
我试过而不是 [$data: wordInput!]
$data: { $eng_word: String!, $ru_word: String! }
但是没有帮助...错误日志没有提供任何有价值的信息:
// value or the constructed error will be meaningless.
> 46 | constructor({
| ^ 47 | graphQLErrors,
48 | networkError,
49 | errorMessage,
已经花了 10 个小时,找不到错误...
【问题讨论】:
-
有时会发生这种情况,您能否将查询粘贴到 Playground 并在确保它在那里工作后尝试将其粘贴回代码部分?你也用prettier?
-
是的,我在操场上通过了这个查询,它在那里工作......我用的更漂亮,但可能我没有 gql 的扩展
-
其实你可以尝试安装,有时我也出现过。如果它不漂亮,我就知道有问题。有时它可能是由空的垫片引起的。
-
你传递了正确的变量(
eng_word,data- API 需要,可由 graphiql 文档探索)但使用了错误的查询,这足以editWord( eng_word: $eng_word data: $data )..... 在编码之前学习在graphiql中使用“查询变量”
标签: reactjs graphql apollo-client