import React, { Component } from "react";
import { FormattedMessage } from "react-intl";
import { connect } from "react-redux";
class Project extends Component {
render() {
return (
<div
className = {
"ih-item square effect6 from_top_and_bottom grid-item " +
this.props.category +
" " +
this.props.widthClass
}
>
<FormattedMessage id = "route.project">
{route => {
return (
<a href = {"/" + route + this.props.url}>
<div className = "img">
<img src = {this.props.mainImage} alt = "img" />
</div>
<div className = "info">
<h3>{this.props.header}</h3>
<p>{this.props.description}</p>
</div>
</a>
);
}}
</FormattedMessage>
</div>
);
}
}
const mapStateToProps = state => {
return {
projects: state.project.projects
};
};
export default connect(
mapStateToProps,
{}
)(Project);Как реализовать страницы проектов и собственный URL для каждого из них. Я предполагаю, что пользовательские URL-адреса должны быть сделаны с MongoDB, но как реализовать это в reactjs. Это третий день моих исследований, но в основном я находил сложный код
Спасибо за каждый ответ



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, вам нужно установить реакция-маршрутизатор-дом. Во-вторых, используйте строки шаблона.
Скорее всего, для этого вы будете использовать клиентский навигационный пакет, такой как React-маршрутизатор.
Чтобы настроить базовый маршрутизатор, вам необходимо определить маршруты и представления для этих маршрутов следующим образом, где свойство «путь» относится к желаемой конечной точке, а «компонент» — желаемое представление:
import React from "react";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
const BasicExample = () => (
<Router>
<div>
{/* Navigation menu */}
<ul>
<li>
<Link to = "/">Home</Link>
</li>
<li>
<Link to = "/about">About</Link>
</li>
<li>
<Link to = "/topics">Topics</Link>
</li>
</ul>
<hr />
{/* Routes */}
<Route exact path = "/" component = {Home} />
<Route path = "/about" component = {About} />
<Route path = "/topics" component = {Topics} />
</div>
</Router>
);
Эти маршруты также могут быть сгенерированы динамически с использованием массива маршрутов, таких как следующие (определенные в состоянии вашего компонента):
routes = [
{
path: "/",
exact: true,
component: Home
},
{
path: "/bubblegum",
component: () => <div>bubblegum!</div>,
},
{
path: "/shoelaces",
component: Shoelaces
}
а затем визуализируется в React с помощью .map():
{this.state.routes.map(route => (
<Route exact = {route.exact||false} path = {route.path} component = {route.component} />
))}
Я бы начал с учебника по реактивному маршрутизатору.