【发布时间】:2018-07-26 14:59:59
【问题描述】:
我使用的是 react-router v4,没有 redux。代码示例如下:
class MainPage extends Component {
render() {
return (
<div className="MainPage">
<BrowserRouter>
<Switch>
{/* <Route exact path='/' /> */}
<Route path='/signin' component={SignIn}/>
<Route path='/signup' component={SignUp} />
<Redirect from='*' to='/' />
</Switch>
</BrowserRouter>
</div>
);
}
}
当我使用 Link 时,它会在浏览器中更新 URL 但不呈现任何内容,因此什么也没有发生。当我重新刷新时,一切都变得很好并且组件呈现;
export default class Navbar extends Component {
render() {
return (
<div className="navbar">
<BrowserRouter>
<div>
<Link to='/signin'>Sign in</Link>
<Link to='/signup'>Sign up</Link>
</div>
</BrowserRouter>
</div>
);
}
}
我已经尝试了所有方法,即使是withRouter(Component),但它说with router 只能在内部使用 我该如何处理?
【问题讨论】:
-
首先,您应该删除 NavBar 中的 BrowserRouter,然后将这个 Navbar 组件移动到您的 MainPage 中,并将其放在类名为“MainPage”的 div 中,但在 BrowserRouter 上方。希望它有效
-
你在哪里渲染你的导航栏
-
我更改了 MainPage 组件中的代码并从 Navbar 中删除了 BrowserRouter,并在 BrowserRouter 上方的主页 div 中添加了 Navbar,但现在反应告诉我 - 你不应该在
之外使用 跨度>
标签: javascript reactjs react-router