react-router-sitemap не генерирует URL-адреса для динамического контента из списка

Мы используем react-router-sitemap для динамического создания карты сайта. Мы застряли с динамическим добавлением маршрутов из нашего блога. Код корректно возвращает вывод, но не добавляет ссылки на статьи в карту сайта, вот код:

import React, { useEffect } from 'react';
import {Switch, Route} from 'react-router-dom';
import HomePage from './homePage/HomePage';
import Projects from './projects/Projects';
import Project from './projects/MobileProject/project/Project';
import Contact from './contact/Contact';
import Job from './job/Job';
import Blog from './blog/Blog';


const fetch = require("node-fetch");
const API = "http://wp.mysite.in.ua";

function generatePostsRoutes() {
    console.log("generating posts ...");
    let posts = [];

    fetch(API + "/wp-json/wp/v2/posts")
        .then((response) => response.json())
            .then(content => {
                posts = content;
                console.log(posts.map((value) => <Route exact path={"/blog/article/" + value.slug} component={Blog} />));

                if(posts.length !== 0) {
                    return (
                        posts.map((value) => <Route exact path={"/blog/article/" + value.slug} component={Blog} />)
                    );
                }
            });
}

export default (
    <Switch>
        <Route exact path="/" component={HomePage}/>
        <Route exact path="/projects" component={Projects}/>
        <Route exact path="/project" component={Project}/>
        <Route exact path="/blog" component={Blog}/>
        <Route exact path="/blog/:sortId" component={Blog}/>
        {
            generatePostsRoutes()
        }
        <Route exact path="/job" component={Job}/>
        <Route exact path="/contact" component={Contact}/>
    </Switch>
);

Вот наша карта сайта, мы хотим добавить ссылки на блоги после <url> <loc>http://mysite.in.ua/blog/:sortId</loc> </url>:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" 
xmlns:xhtml="http://www.w3.org/1999/xhtml" 
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" 
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" 
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url> <loc>http://mysite.in.ua/</loc> </url>
<url> <loc>http://mysite.in.ua/</loc> </url>
<url> <loc>http://mysite.in.ua/projects</loc> </url>
<url> <loc>http://mysite.in.ua/project</loc> </url>
<url> <loc>http://mysite.in.ua/blog</loc> </url>
<url> <loc>http://mysite.in.ua/blog/:sortId</loc> </url>
<url> <loc>http://mysite.in.ua/job</loc> </url>
<url> <loc>http://mysite.in.ua/contact</loc> </url>
</urlset>

Спасибо за уделенное время, буду очень рада, если вы нам поможете)


person mshel    schedule 19.02.2020    source источник
comment
Отвечает ли это на ваш вопрос? XML-карта сайта для реагирующего приложения   -  person yash kothari    schedule 21.07.2020


Ответы (1)


react-router-sitemap позволяет генерировать URL для динамического содержимого. На шаге 6 Как создать карту сайта для вашего веб-сайта React с динамическим содержимым показывает, как добавлять динамическое содержимое

person Bradia    schedule 21.03.2020