我无法在ReactJS中正确使用history.push()

时间:2019-09-03 21:17:40

标签: javascript reactjs

我是ReactJS的初学者,我正在尝试使用history.push()重定向页面,但没有成功。谁能帮我说我的代码有什么问题吗?我知道可以使用React Router,但这对我想做的事情没有帮助。

import React from 'react';

class App extends React.Component {

    constructor(props) {
        super(props)
        this.handleClick = this.handleClick.bind(this)
    }

    handleClick(e) {
        e.preventDefault()
        this.props.history.push('/redirected');
    }

    render() {
        return (
            <div>
                <button onClick={this.handleClick}>
                    Redirect!!!
                </button>
            </div>
        )
    }
}

export default App; 

单击按钮后,出现以下错误:

TypeError: Cannot read property 'push' of undefined

在线:

this.props.history.push('/redirected');

谢谢!

2 个答案:

答案 0 :(得分:1)

最简单的解决方案是:

安装历史记录:

npm install --save history

初始化index.js中的浏览器历史记录:

import { createBrowserHistory } from 'history';

export const browserHistory = createBrowserHistory();

使用:

browserHistory.push('/pathToRedirect')

答案 1 :(得分:0)

如果重定向到外部链接,请尝试以下操作:

window.location.href = 'your-url';

尽管如果重定向到外部链接,我必须警告您,但是react-router不能按照您希望的方式工作。