我已经升级到React Router V4,现在正在努力使用历史。推送
方法
我有一个index.js文件:
从“React”导入React;
从“react dom”导入{render};
从“react router dom”导入{BrowserRouter,Route};
从“历史记录/createBrowserHistory”导入createBrowserHistory;
const history=createBrowserHistory();
从“/components/Main”导入{Main};
从“/components/About”导入{About}”;
从“/components/Cars”导入{Cars}”;
类应用程序扩展了React.Component{
render(){
返回(
<;浏览器路由器历史={history}>;
<;div>;
<;路由路径={”/“}组件={Main}/>;
<;路线路径={“/cars”}组件={cars}/>;
<;路由路径={”/about“}组件={about}/>;
<;/div>;
<;/BrowserRouter>;
)
}
}
render(<;App/>;,window.document.getElementById(“App”));
然后我有另一个文件,我在其中添加了一个简单的返回到某个页面的命令,如下所示:
从“React”导入React;
从“历史记录/createBrowserHistory”导入createBrowserHistory;
const history=createBrowserHistory();
export-class.Component{
导航回退(){
history.push(“/”)
}
render(){
返回(
<;div>;
<;h3>;汽车概述<;/h3>;
<;p>;型号:<;/p>;
<;button onClick={this.navigateBack}className=“btn btn primary”>;Back<;/button>;
<;/div>;
)
}
}
所以,我不知道这里出了什么问题。当我点击按钮时,URL变为/
,但仅此而已。有人能帮我吗
编辑
我发现,当我这样做时,它会起作用:
this.props.history.push(“/home”)
及
<;按钮onClick={this.onNavigateHome.bind(this)}
但不知怎的,这似乎是错的
当我这样做的时候
this.context.history.push(“/home”)
我得到无法读取null的属性“context”
但为什么??是我的<;浏览器路由器>设置错误
无论如何,谢谢你的帮助:)
您必须从“react router dom”导入{withRouter}
,并以这种方式导出类
使用路由器导出默认值(汽车)