У меня есть приложение React на тему gatsby-theme, которое использует gatsby-source-graphql
для извлечения данных из моего внутреннего приложения. Я установил refetchInterval: 20
в моем файле gatsby-config.js
. Мой gastby-config.js
файл выглядит так:
module.exports = {
siteMetadata: {
title: 'Gatsby Theme Mytheme',
...
},
pathPrefix: `/gtm`,
plugins: [
{
...
...
{
resolve: `gatsby-source-graphql`,
options: {
fieldName: `cms`,
url: `http://127.0.0.1:7000/api/graphiql`,
typeName: `CMSData`,
refetchInterval: 20,
},
},
`gatsby-plugin-sharp`,
`gatsby-transformer-sharp`,
],
};
Когда я запускаю приложение в режиме разработки (gatsby develop
), я вижу (console.log
) изменения, внесенные в серверную часть Приложение CMS через 20 секунд. Но изменения не могут видеть / отображать на сборке (сборка gatsby). Поэтому после сборки все, что я изменяю в резервной копии, не отражается в моем клиентском приложении. Итак, как я могу динамически получить изменения из внутреннего приложения для моей сборки gatsby?
Компонент, который я использую для получения внутренних данных GraphQL, задается как
import { useStaticQuery, graphql } from "gatsby";
export function myComponent() {
const cmsMenu = useStaticQuery(graphql`
{
cms {
allMenus {
edges {
node {
menuName
}
}
}
}
}
`)
console.log("CMS menu from MenuProvider", cmsMenu);
}