javascript - 来自 React v4 中事件处理程序的 URL 重定向
问题描述
我是 React 新手,在使用 JavaScript 事件处理程序重定向到新页面时遇到问题。我不知道我做错了什么。
应用程序.js
import React, { Component } from 'react';
import {Switch, Route} from 'react-router-dom';
import Nav, {Jumbotron} from '../partials/headobjs';
import Footer from '../partials/footer';
import Users from '../components/user';
import UserObj from '../components/userobj';
import Err404 from '../components/err404';
//import css files..
import '../css/styles.css';
class App extends Component {
render() {
return (
<div>
<Nav />
<Jumbotron/>
<Switch>
<Route exact path='/' component={Users}/>
<Route path='/user' component={UserObj}/>
<Route component={Err404} />
</Switch>
<div className='clr'></div>
<Footer />
</div>
);
}
}
export default App;
用户.js
import React, { Component } from 'react';
import {Redirect} from 'react-router-dom';
class Users extends Component {
constructor(){
super();
this.state = {
name:aminu
};
}
gotoURL(usr){
let url = `/user/${usr}`;
//console.log(url);
return <Redirect to={url}/>
}
render() {
return (
<div className="container">
<button onClick={this.gotoURL.bind(this, this.state.name)}>
Go to {this.state.name} page
</button>
</div>
);
}
}
export default Users;
我希望该功能gotoURL
重定向到新路线,但我不确定我做错了什么,我尝试使用browserHistory
,现在我正在尝试<Redirect/>
课程但无济于事。
解决方案
Redirect
组件需要被渲染而不是返回到 onClick 处理程序,这就是它不工作的原因。你可以history.push
改用
gotoURL(usr){
let url = `/user/${usr}`;
//console.log(url);
this.props.history.push(url);
}
推荐阅读
- javascript - 使一组复选框成为必需
- java - Map.entry (Java) 是 .Net 元组的最佳等价物吗?
- java - 使用 JAVA 连接 MySQL 的注册表单
- c# - 为什么在使用 IndexOf(string) 和 IndexOf(char) 时,非组合变音符号前面的空格会有所不同?
- python - 数据隐私 Rasa NLU
- javascript - XMLHttpRequest 后的 JS 函数调用 PHP 文件
- awk - 将每两次出现的字符串之间的文本提取到一个新文件中
- google-apps-script - 谷歌表格:让公式只更改一次单元格
- r - 确定日期/时间间隔是否跨越中午,无论是哪一天,在 R
- coq - Coq 中的循环类型定义