Gatsby graphql с регулярным выражением в качестве переменной

Я хотел бы использовать регулярное выражение с переменной запроса graphql.

Это не возвращает результатов:

export const query = graphql`
  query(
    $episodes: String!
    ) {
    episodes: allMarkdownRemark(
      filter: { fields: { slug: { regex: $episodes } } }
    ) {
      edges {
        node {
          id
        }
      }
    }
  }
`;

Однако это сработает:

export const query = graphql`
  query() {
    episodes: allMarkdownRemark(
      filter: { fields: { slug: { regex: "/episodes/travel/" } } }
    ) {
      edges {
        node {
          id
        }
      }
    }
  }
`;

что случилось?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
2
0
5 687
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Передача регулярного выражения через аргументы запроса должна работать, см. скриншот ниже. Убедитесь, что вы передаете регулярное выражение как строку, а не фактическое регулярное выражение. Кроме того, вам нужно избежать средней косой черты:

    context: {
-     episodes: /episodes/traveller/             <-- doesn't work
+     episodes: /episodes/traveller/.toString()  <-- works
or    episodes: "/episodes\/traveller/"          <-- also works
    }

Попробуйте это в одном из встраиваний graphiQL в эта страница

Другие вопросы по теме