当我尝试将变量传递给阿波罗(GraphQl)突变时出错

问题描述 投票:0回答:2

我在我的应用中使用了阿波罗突变。一切正常,直到我尝试将变量传递给此突变。我的代码:

const DELETE_WORD = gql`
  mutation($eng_word: String!) {
    deleteWord(eng_word: $engWord) {
      eng_word
    }
  }
`;
const deleteWord = engWord => {
  deleteWordHook({ variables: { engWord } }).then(closeModal());
  refetch();
};

调用deleteWord后,我收到错误消息,该错误未提供任何有价值的反馈。

这是工作代码(没有传递变量):

const DELETE_WORD = gql`
    mutation {
      deleteWord(eng_word: "apple") {
        eng_word
      }
    }
  `;
const deleteWord = engWord => {
    deleteWordHook().then(closeModal());
    refetch();
  };
reactjs graphql react-apollo
2个回答
0
投票

您将错误的参数传递给突变。您应该将eng_word传递给deleteWordHook的变量。试试这个:

const DELETE_WORD = gql`
  mutation($eng_word: String!) {
    deleteWord(eng_word: $engWord) {
      eng_word
    }
  }
`;
const deleteWord = engWord => {
  deleteWordHook({ variables: { eng_word: engWord } }).then(closeModal());
  refetch();
};

0
投票

因为您正在传递engWord作为变量在调用突变点时是可变的,您在声明突变时也应使用相同的名称。像下面那样更改代码应该可以工作

const DELETE_WORD = gql`
      mutation($engWord: String!) {
        deleteWord(eng_word: $engWord) {
© www.soinside.com 2019 - 2024. All rights reserved.