从 React 应用程序向 graphql API 发送一个枚举

Send an enum to graphql API from react app

我有一个输入(附图)需要从 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:

时收到此错误

Error: GraphQL error: Variable $data got invalid value.

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

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

RequestActionEnum 的枚举值为

  • NEW
  • UPDATE
  • ARCHIVE

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

{
  someField(someArgument: NEW)
}

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

FWIW,如果您真的通读到错误的结尾,它也会告诉您很多。