gpt4 book ai didi

javascript - react browserHistory.push 给出未捕获的类型错误 : Cannot read property 'push' of undefined

转载 作者:行者123 更新时间:2023-11-30 09:36:58 25 4
gpt4 key购买 nike

我正在尝试通过点击更改页面。这里是点击函数

import React, { Component } from 'react';
import {BrowserRouter as Router,Route} from 'react-router-dom';
import { browserHistory } from 'react-router';
class Buttons extends Component {
skipClick(){
browserHistory.push('/sessionstate2');
}
render() {
return (<a className={skipShow} onClick={this.skipClick}>Skip</a>)
}
}

和 index.js

import browserHistory from 'react-router';
ReactDOM.render(
<Router history={browserHistory}>
<div>
<Route exact path="/" component={App} />
<Route exact path="/sessionstate1" component={Template1}/>
<Route exact path="/sessionstate2" component={Template2}/>
<Route exact path="/sessionstate3" component={Template3}/>
</div>
</Router>,
document.getElementById('root')
);

付出

Uncaught TypeError: Cannot read property 'push' of undefined

你能告诉我我做错了什么吗?

最佳答案

这是一个可重现的示例,说明如何在 React Router v4 中以编程方式更改路由。

首先,安装一个简单应用的样板文件:

sudo npm install -g create-react-app
create-react-app demo-app
cd demo-app
npm install react-router-dom

然后我们将 /src/App.js 更改为:

import React from 'react'
import {BrowserRouter as Router, Route, Link, withRouter} from 'react-router-dom'

const BasicExample = () => (
<Router>
<div>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>

<Route exact path="/" component={Home}/>
<Route path="/about" component={About}/>
</div>
</Router>
)

const Home = () => (
<div>
<h2>Home</h2>
</div>
)

const Button = withRouter(({history}) => (
<button type='button' onClick={() => { history.push('/new-location') }}>Click Me!</button>
))

const About = () => (
<div>
<h2>About</h2>
<Button />
</div>
)

export default BasicExample

然后启动你的服务器:

npm run start

如果您导航到 localhost:3000,然后单击关于,您将看到按钮组件。单击它将以编程方式将路由更改为 /new-location

关于javascript - react browserHistory.push 给出未捕获的类型错误 : Cannot read property 'push' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com