【发布时间】:2019-10-23 07:27:42
【问题描述】:
我正在尝试使用 React 构建一个简单的示例项目,在该项目中,用户在单击按钮后被重定向到“联系人”页面。我试图通过设置状态属性的值来实现这一点。当我运行我拥有的代码时,它确实将浏览器地址栏 URL 更改为联系页面的 URL,但似乎并没有实际加载组件 - 我得到一个空白页面。如果我手动导航到该 URL (http://localhost:3000/contact),我可以看到内容。
这是我的 App.js 和 Contact.js 文件 -
App.js
import React, { Component } from 'react';
import { BrowserRouter as Router, Switch, Route, Link, Redirect } from 'react-router-dom';
import Contact from './Contact';
class App extends Component {
state = {
redirect: false
}
setRedirect = () => {
this.setState({
redirect: true
})
}
renderRedirect = () => {
if (this.state.redirect) {
return <Redirect to='/contact' />
}
}
render() {
return (
<Router>
<Switch>
<Route exact path='/contact' component={Contact} />
</Switch>
<div>
{this.renderRedirect()}
<button onClick={this.setRedirect}>Redirect</button>
</div>
</Router>
)
}
}
export default App;
Contact.js
import React, { Component } from 'react';
class Contact extends Component {
render() {
return (
<div>
<h2>Contact Me</h2>
<input type="text"></input>
</div>
);
}
}
export default Contact;
使用状态对我来说并不是真正的要求,所以其他(最好更简单的)重定向方法也会受到赞赏。
【问题讨论】:
标签: javascript reactjs redirect react-router react-dom