Я создаю приложение для электронной коммерции без головы с Gatsby js и плагином gatsby-source-woocommerce .Продукты подразделяются на две основные категории (женщина и мужчина) с набором подкатегорий.Страницы продуктов и страницы категорий создаются динамически с использованием Node и GraphQL .
Все работало отлично, но теперь главная категория 'Женщина' внезапно перестала появляться в GraphQL, в результате чего страница / женщина была пустой.Странная часть в том, что все остальные категории, включая подкатегории женщин, в порядке.Я добавил новые категории в бэк-энде woocommerce, чтобы найти проблему, и ничего не будет синхронизировано.Изменение других данных работает, например, название продукта, цены или изображения. Таким образом, в основном получается, что GraphQL не загружает обновления, а только для «allWcProductsCategories» .
Я попытался очистить gatsby, я попытался переустановить зависимости, и при запуске не появилось никаких предупреждений или ошибок.развиваться.И теперь я схожу с ума.Помогите?
Код gatsby-node.js (который отлично работает)
const path = require('path')
module.exports.createPages = async ({ graphql, actions }) => {
const { createPage } = actions
const singleTemplate = path.resolve('./src/templates/single.js')
const womanTemplate = path.resolve('./src/templates/woman.js')
const manTemplate = path.resolve('./src/templates/man.js')
const res = await graphql(`
query {
allWcProducts {
edges {
node {
slug
}
}
}
allWcProductsCategories {
edges {
node {
slug
}
}
}
}
`)
res.data.allWcProducts.edges.forEach((edge) => {
createPage({
component: singleTemplate,
path: `/${edge.node.slug}`,
context: {
slug: edge.node.slug
}
})
})
res.data.allWcProductsCategories.edges.forEach((edge) => {
var category = `${edge.node.slug}`;
if (category === 'woman' ) {
var slug = `/${edge.node.slug}`;
createPage({
component: womanTemplate,
path: slug,
context: {
slug: edge.node.slug
}
})
} else if (category.startsWith('woman-')) {
var slug = `/woman/${edge.node.slug}`;
slug = slug.replace('woman-', '')
createPage({
component: womanTemplate,
path: slug,
context: {
slug: edge.node.slug
}
})
} else if (category === 'man' ) {
var slug = `/${edge.node.slug}`;
createPage({
component: manTemplate,
path: slug,
context: {
slug: edge.node.slug
}
})
} else if (category.startsWith('man-')) {
var slug = `/man/${edge.node.slug}`;
slug = slug.replace('man-', '')
createPage({
component: manTemplate,
path: slug,
context: {
slug: edge.node.slug
}
})
}
})
if (process.env.NODE_ENV === 'development') {
process.env.GATSBY_WEBPACK_PUBLICPATH = '/'
}
}