试图弄清楚如何返回上一页。我在用[react-router-v4][1]
这是我在第一个登录页面中配置的代码:
<Router>
<div>
<Link to="/"><div className="routerStyle"><Glyphicon glyph="home" /></div></Link>
<Route exact path="/" component={Page1}/>
<Route path="/Page2" component={Page2}/>
<Route path="/Page3" component={Page3}/>
</div>
</Router>
为了转发到后续页面,我只需执行以下操作:
this.props.history.push('/Page2');
但是,如何返回上一页?尝试了以下一些事情,但没有运气:1。this.props.history.goBack();
给出错误:
TypeError:null不是对象(评估“ this.props”)
this.context.router.goBack();
给出错误:
TypeError:null不是对象(评估“ this.context”)
this.props.history.push('/');
给出错误:
TypeError:null不是对象(评估“ this.props”)
Page1
在下面发布代码:
import React, {Component} from 'react';
import {Button} from 'react-bootstrap';
class Page1 extends Component {
constructor(props) {
super(props);
this.handleNext = this.handleNext.bind(this);
}
handleNext() {
this.props.history.push('/page2');
}
handleBack() {
this.props.history.push('/');
}
/*
* Main render method of this class
*/
render() {
return (
<div>
{/* some component code */}
<div className="navigationButtonsLeft">
<Button onClick={this.handleBack} bsStyle="success">< Back</Button>
</div>
<div className="navigationButtonsRight">
<Button onClick={this.handleNext} bsStyle="success">Next ></Button>
</div>
</div>
);
}
export default Page1;
我认为问题在于绑定:
constructor(props){
super(props);
this.goBack = this.goBack.bind(this); // i think you are missing this
}
goBack(){
this.props.history.goBack();
}
.....
<button onClick={this.goBack}>Go Back</button>
正如我在发布代码之前所假设的那样:
constructor(props) {
super(props);
this.handleNext = this.handleNext.bind(this);
this.handleBack = this.handleBack.bind(this); // you are missing this line
}
问题内容: 我想显示在以某种方式从目前的路线通过。 在React Router v4中,如何将当前路由传递到prop中? 有没有办法通过从自定义自定义标题上? 问题答案: 在5.1版本的react-router中,有一个名为 useLocation 的钩子,该钩子返回当前的位置对象。每当您需要知道当前URL时,这可能都会有用。
问题内容: 有没有办法在React Router v4中嵌套路由? 这有效: 这不是: 客户组成部分: 问题答案: 到目前为止,我发现的最佳模式。 我可以继续将其嵌套在组件中,并且一切都很好,包括hmr(如果使用webpack,请不要忘记设置为)
问题内容: 我正在电子中创建我的第一个反应应用程序(也是我的第一个电子应用程序)。我有两条路线,需要从一条导航到另一条。为此,我使用以下代码: 根 应用程式 页 这行给出了错误, 我在网上搜索了可能的解决方案,但找不到!SO上也有许多类似的问题,但是对我来说都没有作用:( 问题答案: 您现在必须从历史记录模块中导入它,该模块提供了3种不同的方法来创建不同的历史记录。 适用于支持历史记录API的现代
问题内容: 我正在使用。我感到困惑的是,当我单击组件时,路线会立即更改。我想在获取数据之前停留在当前路线,而不是先切换路线再获取数据。我发现其中有一个钩子,但现在在中,它已被弃用。那么,如何在单击组件之后以及更改路线之前立即获取数据? 例: 它是:在->单击->获取数据以进行->渲染 不:在->单击->渲染->获取数据->重新渲染 问题答案: 在中,您可以使用prop 来替换其中现有的功能 假设您
问题内容: 我从React-Router v3迁移到v4时遇到一些小问题。在v3中,我可以在任何地方执行此操作: 如何在v4中实现这一目标。 我知道当您在Component中时,可以使用hoc ,react上下文或事件路由器props。但对我而言并非如此。 我正在寻找v4中的NavigatingOutsideOfComponents的等效项 问题答案: 您只需要有一个导出对象的模块。然后,您将在整
我试图结合反应路由器v4,反应,和redux。因为react-router跟踪URL,所以我选择将该状态块排除在redux模型之外。 但我仍然需要一种方法来在react路由器发生路由更改时调度redux操作。哪里是最好的地方? 我的第一次尝试是将它放在react路由器链接的onClick属性中: 其思想是,当用户单击链接时,dispatchAction()将更新redux状态,然后加载相册组件。