ReactJS路由器V4历史记录。推送不工作

我已经升级到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”但为什么??是我的<浏览器路由器&gt设置错误

无论如何,谢谢你的帮助:)

您必须从“react router dom”导入{withRouter},并以这种方式导出类

使用路由器导出默认值(汽车)

发表评论