从react应用程序向 graphql API 发送枚举

IT技术 javascript reactjs graphql react-apollo apollo-client
2021-05-08 22:17:11

我有一个输入(附加图像),我需要从 React 应用程序发送到 graphql api。

在此处输入图片说明

我正在使用下面的代码将此对象和枚举与 init 发送到 graphql api Reactjs 代码

const RequestActionEnum = {
NEW: 'New',
UPDATE: 'Update',
ARCHIVE: 'Archive'
}

LocalCodeMutation({
      variables: {
        data: {
          id: null,
          city: values.jurisdiction,
          country: values.country,
          description: values.description,
          edition: values.edition,
          name: values.codeName,
          note: 'test',
          requestType: RequestActionEnum.NEW, // this is where i am sending enum value to api 
          state: values.state
        }
      }
    });

下面的代码是我调用突变的地方

 const [LocalCodeMutation] = useMutation(LOCALCODE_MUTATION, {
refetchQueries: () => [
  { query: GET_LOCALCODES },
],
});

export const LOCALCODE_MUTATION = gql`
  mutation LocalCodeMutation($data:  LocalCodeRequestParamsInput) {
localCodeMutation(data: $data) {
  ok
  errors
  localCodeInsertedId
  }
 }
`;

发送到 API 时出现此错误:

错误:GraphQL 错误:变量 $data 的值无效。

如何从 React 组件向 graphQL api 发送枚举值。

任何人都可以就此提出任何想法吗?

1个回答

对于枚举值RequestActionEnumARE

  • NEW
  • UPDATE
  • ARCHIVE

如果您将此枚举用作文字(而不是变量),您可以这样写:

{
  someField(someArgument: NEW)
}

同样,如果您使用变量,您将使用"NEW". 相反,您使用的是"New",这不是此特定枚举的有效枚举值。

FWIW,如果您真的通读到错误的结尾,它也会告诉您同样的信息。