Ошибка Apollo-GraphQL при отправке слова с пробелом? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть GQL Apollo, который фильтрует по состоянию. GQL принимает значения типа «ПРИНЯТО» или «ОТКАЗАНО» и т. Д. Однако я заметил, что когда я отправляю фильтр типа «ХОРОШИЙ ЛИВЕР», в котором есть пробел, он больше не будет работать. Есть идеи? Я получаю эту ошибку

Stack: GraphQLError: Variable "$stateIn" got invalid value ["GOOD LEAVER"].
In element #0: Expected type "MemberStateType", found "GOOD LEAVER".

для отправки этой переменной я использую функцию util для получения значений из реквизита, функция

stateIn:
  getFilterProp('status') &&
  getOr([], 'status', selectedFilterOptions).map(({ name }) =>
    toUpper(name)
)

Я на 100% получаю отправленное значение, потому что вижу их на вкладке сети, просто выдает вышеуказанную ошибку, когда я хочу использовать фильтр "ХОРОШИЙ ЛИВЕР", в противном случае он работает просто отлично.

1 Ответ

0 голосов
/ 18 июня 2019

Исходя из контекста, я предполагаю, что тип вашей переменной $stateIn равен [MemberStateType], а MemberStateType - это перечисление.Как указывает ошибка, GOOD LEAVER не является допустимым значением для этого перечисления.Значения перечисления должны быть действительными именами GraphQL, поэтому они должны соответствовать следующему регулярному выражению:

/[_A-Za-z][_0-9A-Za-z]*/

Однако дело не в том, что вы передаете имя с пробелом - дело в том, что вы 'передается значение, которое не соответствует возможным значениям для перечисления, как это определено в схеме.Если вы передали значение типа FWaFJRYyTPx или другое недопустимое значение перечисления, вы увидите похожую ошибку.

Обратитесь к схеме для конечной точки GraphQL, чтобы определить действительные значения перечисления и соответствующим образом преобразовать ввод.

...