javascript - 当您尝试刷新其他页面时,React js重定向到主页

标签 javascript reactjs react-router

当用户刷新其他页面时,我需要重定向到主页。这是我为页面刷新添加事件监听器的尝试。但它不起作用,我有 Router.js?cf42:125 Uncaught RangeError: Maximum call stack size exceeded在浏览器中。你能告诉我如何处理这个错误吗?

import {browserHistory} from 'react-router';

class MyComponent extends React.Component {
    constructor(props, context) {
        super(props, context);
        this.onUnload = this.onUnload.bind(this);
    }

    componentDidMount() {
       window.addEventListener('beforeunload', this.onUnload);
    }

    componentWillUnmount() {
        window.removeEventListener('beforeunload', this.onUnload);
    }

    onUnload() {
        browserHistory.push('/');
    }

    render() {
        ...
    }
}

UPD:我已修复 RangeError。现在MyComponent的页面被重定向到主页,但之后它再次打开。我认为这是因为重定向不会停止页面刷新。

最佳答案

试试 window.location.href而不是 browserHistory.push .这会有所帮助。

onUnload() {
       window.location.href = "/";
}
这是一个例子:
https://stackblitz.com/edit/react-rbfoic?file=src/App.js

关于javascript - 当您尝试刷新其他页面时,React js重定向到主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46361536/

相关文章:

javascript - Google map "Uncaught TypeError: Cannot read property ' defaultView' 未定义”

javascript - 简单的 Slickgrid 排序不起作用

javascript - 传单使用卫星 View ,drupal 8?

reactjs - 如何修复 'Static HTML elements with event handlers require a role.'?

reactjs - Material UI Autocomplete 默认值为空字符串

javascript - React 使用扩展运算符向克隆元素添加新的 props

jquery - reactjs - 在 react 树之外公开 react 组件方法

javascript - 我想仅通过一个扬声器播放 : Play . mp3

reactjs - React-Quill - addRange() : The given range isn't in document

javascript - 如何在路径不明确的子文件夹中设置 React Router