StaticQuery имеет собственные ограничения (поэтому они называются stati c), и они не допускают никаких параметров c Dynami. Как видно из Документация Gatsby :
Чем StaticQuery отличается от запроса страницы
StaticQuery может делать большинство вещей, которые может выполнять запрос страницы , включая фрагменты. Основные отличия:
- запросы страниц могут принимать переменные (через pageContext), но могут быть добавлены только в компоненты страницы.
StaticQuery
не принимает переменные (отсюда и название «статический ”), Но может использоваться в любом компоненте, включая страницы. - StaticQuery не работает с необработанными вызовами React.createElement; пожалуйста, используйте JSX, например
Конечно, вы можете фильтровать, используя жестко запрограммированное значение, это фактически единственное доступное решение, так как вы не можете фильтровать, используя динамическое c значение.
Проверьте свою localhost:8000/___graphql
игровую площадку, чтобы узнать, работает ли ваш запрос (он должен). Обычно связанные значения в GraphQL должны быть отфильтрованы с использованием filter: { country__code: { eq:"CA" }}
В идеале ваш файл ловушки useStaticQuery
должен выглядеть так:
import { graphql, useStaticQuery } from 'gatsby';
export const useYourItems = () => {
const yourItems = useStaticQuery(
graphql`
query MyQuery {
allStrapiAvailableLanguageByMarkets(filter: {country: {code: {eq: "CA"}}}) {
nodes {
country {
code
}
languages {
code
name
}
}
}
}`,
);
return yourItems.allStrapiAvailableLanguageByMarkets;
};
Затем в другом компоненте:
const yourItems = useYourItems();