reactjs - React 路由器无法导航
问题描述
我在导航栏中有一个登录和注册。
我的“/”路径呈现 SignUp 组件,并且 SignUp 组件有一个带有输入和按钮的表单。
在提交表单或单击按钮时,我应该被带到 ("/signin") 登录页面,该页面呈现我的登录组件。
但是,我的问题是,一旦我单击按钮或提交表单,它仍然停留在 ("/") 注册页面中并且不会导航到登录页面 ("/signin")
代码 :
import { Redirect } from "react-router-dom";
function Signup() {
const handleClick = () => {
<Redirect to="/signin" />;
};
return (
<div>
<form>
<label>
Enter Mobile Number
</label>
<input />
<button onClick={handleClick} >
Get OTP
</button>
</form>
</div>
);
}
export default Signup;
应用程序.js
function App() {
return (
<Router>
<div>
<Nav />
<Switch>
<Route exact path="/" component={Signup} />
<Route path="/signin" component={SignIn} />
</Switch>
</div>
</Router>
);
}
我试图解决这个问题的事情,
我包裹在按钮中:
<button onClick={handleClick} >
<Link to="/signin"> Get OTP </Link>
</button>
我也尝试onSumbit
了形式而不是 onClick
解决方案
一种方法是组成一个Link
元素,如:
import { Link } from "react-router-dom";
<Link to='/'>
<button>
Redirect to home
</button>
</Link>
对于表单,您可以这样做:
import { history } from "react-router-dom";
<form onSubmit={() => history.push("/")}>
...
</form>
推荐阅读
- javascript - 客户尚未被授予范围:读取角色
- android - 保存自动填充对话框未显示
- yii2 - 将文件上传到文件系统,然后将详细信息存储在数据表中
- javascript - 如何使用 puppeteer 输入美元金额?
- react-native - 世博会说 react-native 缺失
- python - 参数为函数的lambdified函数的Lambda
- alamofire - Alamofire 支持优先级吗?
- javascript - 未捕获的类型错误:无法读取 null 的属性“名称”。只返回真值
- git - 删除从未被推送的文件
- node.js - 如何使用 nodemon 运行 ECMAScript(mjs 文件)?