Очень новое, чтобы реагировать, пытаясь пройти через несколько учебников в этом процессе.Понимание того, как иметь несколько страниц с React и реагирующим маршрутизатором
Я считаю, что мне не хватает одной из основных концепций React и неправильно настроил структуру. То, что я пытаюсь сделать, - это домашняя страница (Main_Layout) с навигационной панелью вверху. Он будет иметь ссылку на этой странице, чтобы перейти на вторичную страницу для отображения информации пользователя (User_Layout). Эта страница User_Layout также будет иметь навигационную панель, но она будет отличаться от исходных страниц.
Так я установил свой маршрут, чтобы содержать только один дополнительный маршрут для страницы пользователя: client.js
document.addEventListener('DOMContentLoaded', function(){
const app = document.getElementById('app');
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Main_Layout}>
<Route path="user" component={User_Layout}></Route>
</Route>
</Router>,
app);
});
Так, когда приложение загружает его загрузит Main_Layout.js
import React from "react";
import Header from "./components/Header"
export default class Main_Layout extends React.Component {
constructor(){
super();
this.state = {
"title" : "Go to user page!",
}
}
render(){
return (
<div>
<Header title={this.state.title}/>
</div>
)
}
}
вот мой Header.js компонент, который только есть ссылка на маршрут/пользователя:
import React from 'react';
import { Button, Nav, Navbar, NavDropdown, MenuItem, NavItem } from 'react-bootstrap';
import { Route, RouteHandler, Link } from 'react-router';
import { LinkContainer } from 'react-router-bootstrap';
export default class Header extends React.Component {
render(){
return(
<Navbar>
<Navbar.Header>
<Navbar.Brand>
<a href="#">Website Title</a>
</Navbar.Brand>
</Navbar.Header>
<Nav pullRight>
<LinkContainer to="/user">
<NavItem eventKey={1}>{this.props.title}</NavItem>
</LinkContainer>
</Nav>
</Navbar>
)
}
}
и, наконец, моя страница для отображения информации о пользователе: User_Layout.js
import React from "react";
import Footer from "./components/Footer"
import Header from "./components/Header"
export default class User_Layout extends React.Component {
render(){
console.log("Made it to the user page");
var title = "You are at the user page!";
return (
<div>
<Header title={title}/>
</div>
)
}
}
Я думаю, у меня есть несколько проблем:
Когда я нажимаю «Перейти к вашему пользовательская страница «Я вижу изменение маршрута в строке URL для пользователя/# /, но мой код в User_Layout никогда не срабатывает (консоль.log не запускается)
Если бы я должен был переопределить существующий заголовок, правильно ли мне объявить компонент заголовка в User_Layout? Каков наилучший способ изменить элемент navbar?