React-Router v4 问题- URL 正在更新但组件不是 re-rendering
React-Router v4 Issue- URL's updating but components not re-rendering
差不多的标题。我有一个无序列表,但链接只更改 URL,而不是页面上显示的实际组件。关于为什么会发生这种情况的任何想法?我想我已经包含了所有相关代码,但如果我遗漏了什么,请告诉我。谢谢!
App.js
import React, { Component } from 'react';
import Header from './Header';
import Main from './Main';
class App extends Component {
render() {
return (
<div>
<Header />
<Main />
</div>
)
}
}
export default App
Header.js
import React, {Component} from 'react';
import {Link} from 'react-router-dom';
class Header extends Component {
render() {
return(
<div>
<hr />
<div className="table">
<ul id="horizontal-list">
<li><Link to='/'>Component1</Link></li>
<li><Link to='/ts'>Component2</Link></li>
<li><Link to='/cs'>Component3</Link></li>
<li><Link to='/cw'>Component4</Link></li>
</ul>
</div>
<hr />
</div>
);
}
}
export default Header
Main.js
import React from 'react';
import {BrowserRouter as Router, Route} from 'react-router-dom';
import Component1 from './components/Component1';
import Component2 from './components/Component2';
import Component3 from './components/Component3';
import Component4 from './components/Component4';
class Main extends Component {
<Router>
<div>
<Route exact path='/' component={Component1} />
<Route path='/ts' component={Component2} />
<Route path='/cs' component={Component3} />
<Route path='/cw' component={Component4} />
</div>
</Router>
);
export default Main
index.js
import React from 'react';
import {render} from 'react-dom';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import {BrowserRouter} from 'react-router-dom';
render((
<BrowserRouter>
<App />
</BrowserRouter>
), document.getElementById('root'));
registerServiceWorker();
您的 <Link/>
组件需要是与 <Route/>
组件相同的 <Router/>
组件的子组件。
从 <Main/>
组件中删除 <Router/>
并将其放置在 <Main/>
和 <Header/>
的最近祖先中。这将是您的 <App/>
组件。
差不多的标题。我有一个无序列表,但链接只更改 URL,而不是页面上显示的实际组件。关于为什么会发生这种情况的任何想法?我想我已经包含了所有相关代码,但如果我遗漏了什么,请告诉我。谢谢!
App.js
import React, { Component } from 'react';
import Header from './Header';
import Main from './Main';
class App extends Component {
render() {
return (
<div>
<Header />
<Main />
</div>
)
}
}
export default App
Header.js
import React, {Component} from 'react';
import {Link} from 'react-router-dom';
class Header extends Component {
render() {
return(
<div>
<hr />
<div className="table">
<ul id="horizontal-list">
<li><Link to='/'>Component1</Link></li>
<li><Link to='/ts'>Component2</Link></li>
<li><Link to='/cs'>Component3</Link></li>
<li><Link to='/cw'>Component4</Link></li>
</ul>
</div>
<hr />
</div>
);
}
}
export default Header
Main.js
import React from 'react';
import {BrowserRouter as Router, Route} from 'react-router-dom';
import Component1 from './components/Component1';
import Component2 from './components/Component2';
import Component3 from './components/Component3';
import Component4 from './components/Component4';
class Main extends Component {
<Router>
<div>
<Route exact path='/' component={Component1} />
<Route path='/ts' component={Component2} />
<Route path='/cs' component={Component3} />
<Route path='/cw' component={Component4} />
</div>
</Router>
);
export default Main
index.js
import React from 'react';
import {render} from 'react-dom';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import {BrowserRouter} from 'react-router-dom';
render((
<BrowserRouter>
<App />
</BrowserRouter>
), document.getElementById('root'));
registerServiceWorker();
您的 <Link/>
组件需要是与 <Route/>
组件相同的 <Router/>
组件的子组件。
从 <Main/>
组件中删除 <Router/>
并将其放置在 <Main/>
和 <Header/>
的最近祖先中。这将是您的 <App/>
组件。