Reactjs 为什么你不为我工作?
我有一个启动屏幕,有两个按钮,分别是登录和注册。以下是相同的代码:Reactjs 为什么你不为我工作?,reactjs,Reactjs,我有一个启动屏幕,有两个按钮,分别是登录和注册。以下是相同的代码: import React from 'react'; import Header from './Header.jsx'; import Authentication from './AuthenticateCard.jsx'; import { Redirect } from 'react-router-dom'; function StarterScreen() { function loginClick() {
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;
从“React”导入React;
从“./Header.jsx”导入标头;
从“/AuthenticateCard.jsx”导入身份验证;
从'react router dom'导入{Redirect};
函数启动程序屏幕(){
函数loginClick()
{
return();
警报(“Tru”);
}
函数寄存器click()
{
控制台日志(“寄存器”);
}
返回(
试试:
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);
从“React”导入React;
从“./Header.jsx”导入标头;
从“/AuthenticateCard.jsx”导入身份验证;
从“react router dom”导入{withRouter};
功能启动屏幕(道具){
函数loginClick()
{
props.history.push('/login');
}
函数寄存器click()
{
控制台日志(“寄存器”);
}
返回(
);
}
使用路由器导出默认值(启动屏幕);
注意这里,我添加了withRouter
来包装您的组件,并将其从react router dom导入。然后我使用props.history.push
来导航您不应该在StarterScreen
的事件处理程序中返回重定向,您可以利用withRoutes
高阶组件或u使用useHistory
hook可访问导航器的历史记录,并通过调用push
更改您要导航到的路线
import { withRouter } from 'react-router-dom';
const StarterScreen = ({history}) => {
const loginClick = () => {
history.push("/login");
}
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);
从“react router dom”导入{withRouter};
常量起始屏幕=({history})=>{
const loginClick=()=>{
history.push(“/login”);
}
返回
loginClick
似乎只是返回了一些JSX。我想你想要的是useHistory
中的react router dom
钩子,它实际上是一个函数。但让我试试你说的
import { withRouter } from 'react-router-dom';
const StarterScreen = ({history}) => {
const loginClick = () => {
history.push("/login");
}
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);