javascript - 按下按钮时参考另一个网页
问题描述
目标:
按下按钮(id=hello)进入网页test3
问题:
当我按下按钮按钮时,为了与 React js 代码相关的工作,我遗漏了代码的哪一部分?
信息:
*我是 reactJS 的新手
Stackblitz:
https ://stackblitz.com/edit/redirect-to-default-route-reactjs-8qa9ah?file=index.js
import React, { Component } from "react";
import { render } from "react-dom";
import {
BrowserRouter as Router,
Switch,
Route,
Link,
Redirect
} from "react-router-dom";
import Home from "./Home";
import Test1 from "./Test1";
import Test2 from "./Test2";
import Test3 from "./Test3";
import Test11 from "./test11";
class App extends Component {
constructor() {
super();
this.state = {
isUserAuthenticated: true
};
}
sayHello(link) {
alert(`hello, ${link}`);
return <Redirect to="/test3" />;
}
render() {
return (
<div>
<Router>
<div>
<ul>
<li>
<Link to="/home">Home</Link>
</li>
<li>
<Link to="/test1">Test 1</Link>
</li>
<li>
<Link to="/test2">Test 2</Link>
</li>
<li>
<Link to="/test3">Test 3</Link>
</li>
</ul>
<button
id="hello"
value="test3"
onClick={e => this.sayHello(e.target.value)}
>
Go to page test3
</button>
<hr />
<Switch>
<Route
exact
path="/"
render={() => {
return this.state.isUserAuthenticated ? (
<Redirect to="/home" />
) : (
<Redirect to="/test1" />
);
}}
/>
<Route exact path="/home" component={Home} />
<Route exact path="/test1/test11" component={Test11} />
<Route exact path="/test1" component={Test1} />
<Route exact path="/test2" component={Test2} />
<Route exact path="/test3" component={Test3} />
</Switch>
</div>
</Router>
</div>
);
}
}
render(<App />, document.getElementById("root"));
解决方案
您可以使用道具中的历史对象,并且应该将您的位置推送到所需的路径:
注意:在导出 App 组件时,您可能必须使用 withRouter()。
sayHello(link) {
alert(`hello, ${link}`);
this.props.history.push("/test3")
}
推荐阅读
- sql - 根据与另一个表的几何相交将列数据添加到表中 - PostgreSQL
- machine-learning - Gensim 的潜在狄利克雷分配实现
- r - R中的夏令时 - 正确读取时间戳的问题
- amazon-web-services - 从一个 S3 存储桶将 json 转换为 csv 并通过 AWS Lambda 上传到另一个 S3 存储桶
- swift - 在 Swift 的 UITests 中关闭应用内 AppStore 评级
- php - 使用 PHP 将 HTML 文档拆分为单词和跨度
- python - 类型错误:change_email() 缺少 1 个必需的位置参数:'self'
- regex - 尝试使用特定的正则表达式拆分字符串
- rest - 构建 REST API:如何决定哪些参数用于标头、正文、URL 或查询?
- c# - COM 接口/类返回“对象没有属性或方法”错误