Я использую graphql для получения данных в проекте Gatsby. Это мой файл перевода и функция для получения языка данных:
const useTranslations = () => {
const { locale } = React.useContext(HummingDataContext)
const { rawData } = useStaticQuery(query)
const simplified = rawData.edges.map(item => {
return {
name: item.node.name,
translations: item.node.translations,
}
})
const { translations } = simplified.filter(lang => lang.name === locale)[0]
return translations
}
export default useTranslations
const query = graphql`
query useTranslations {
rawData: allFile(filter: { sourceInstanceName: { eq: "translations" } }) {
edges {
node {
name
translations: childTranslationsJson {
hello
subline
backToHome,
homeTitle,
footerCopyright,
header {
signUp
}
}
}
}
}
}
`
Теперь я хочу сделать этот запрос динамическим c. Когда я передаю ключевое слово в функцию useTranslations
, например,
const {header} = useTranslations('header')
Запрос будет изменен. Пример:
translations: childTranslationsJson {
keyWord
}
С keyWord
- это переменные c.
Таким образом, в этом случае функция useTranslations
получает только базу данных по динамически c keyWord.
I пытался использовать много способов, когда я ищу, но не повезло. Как я могу это сделать?