reactjs - 为什么 React 重定向对我不起作用?
问题描述
我有一个带有两个按钮的启动屏幕,分别是登录和注册。这是相同的代码:
import React from 'react';
import Header from './Header.jsx';
import Authentication from './AuthenticateCard.jsx';
import { Redirect } from 'react-router-dom';
function StarterScreen() {
function loginClick()
{
return(<Redirect to= "/login" />);
alert("Tru");
}
function registerClick()
{
console.log("Register");
}
return (
<div>
<Header header="My Water Chain"/>
<div className="WhiteCard">
<div className="whiteSpace">
</div>
<Authentication text="Login" onClickaction={loginClick} />
<Authentication text="Register" onClickaction={registerClick}/>
</div>
</div>
);
}
export default StarterScreen;
这是我的主要 app.js 文件:
import React from 'react';
import StarterScreen from './components/StarterScreen.jsx';
import LoginScreen from './components/LoginScreen.jsx';
import RegisterScreen from './components/RegisterScreen.jsx';
import 'bootstrap/dist/css/bootstrap.min.css';
import './App.css';
import {BrowserRouter,Route,Switch} from 'react-router-dom';
function App() {
function loginClick()
{
console.log("Login");
}
function registerClick()
{
console.log("Register");
}
return (
<div className="App">
<BrowserRouter>
<Switch>
<Route component={StarterScreen} exact path="/"></Route>
<Route component={LoginScreen} exact path="/register"></Route>
<Route component={StarterScreen} exact path="/login"></Route>
</Switch>
</BrowserRouter>
</div>
);
}
export default App;
解决方案
尝试:
import React from 'react';
import Header from './Header.jsx';
import Authentication from './AuthenticateCard.jsx';
import { withRouter } from 'react-router-dom';
function StarterScreen(props) {
function loginClick()
{
props.history.push('/login');
}
function registerClick()
{
console.log("Register");
}
return (
<div>
<Header header="My Water Chain"/>
<div className="WhiteCard">
<div className="whiteSpace">
</div>
<Authentication text="Login" onClickaction={loginClick} />
<Authentication text="Register" onClickaction={registerClick}/>
</div>
</div>
);
}
export default withRouter(StarterScreen);
注意这里,我添加withRouter
了包装你的组件并从 react-router-dom 导入它。然后我props.history.push
用来导航
推荐阅读
- r - 基于作为分数的结果变量的比例逻辑回归
- html - 将 Div 的底部中心点设置为三角形
- javascript - 计算 JSON 对象中的多个值并打印到屏幕
- reactjs - 反应在分页列表中使用 useRef 钩子是引用第一个元素
- java - Java 数组索引为 n/2
- c++ - 定义可变参数模板大小为 1 的类
- asp.net-core-3.1 - 使用 Seq 的 Serilog 中的远程级别控制不支持覆盖?
- java - 如何在 restAssured 的请求正文中发送带有列表的 JSON 发布请求
- java - 地图
作为 Spring Boot 应用程序中的请求参数 - azure - Azure IOTHUB 错误连接关闭时无法创建会话