reactjs – 使用react-router检测用户离开页面

前端之家收集整理的这篇文章主要介绍了reactjs – 使用react-router检测用户离开页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望我的ReactJS应用程序在导航离开特定页面通知用户。特别是弹出消息,提醒他/她做一个动作:

“Changes are saved,but not published yet. Do that now?”

我应该在react-router上全局触发这个,还是可以从react页面/组件中做到这一点?

我没有在后者身上找到任何东西,我宁愿避开第一个。除非它当然是标准,但这让我想知道如何做这样的事情,而不必将代码添加用户可以去的每个其他可能的页面..

欢迎任何见解,谢谢!

对于react-router 2.4.0

注意:建议将所有代码迁移到最新的react-router获取所有新的好东西。

按照react-router documentation的建议:

应该使用withRouter更高阶组件:

We think this new HoC is nicer and easier,and will be using it in
documentation and examples,but it is not a hard requirement to
switch.

作为文档中的ES6示例:

import React from 'react'
import { withRouter } from 'react-router'

const Page = React.createClass({

  componentDidMount() {
    this.props.router.setRouteLeaveHook(this.props.route,() => {
      if (this.state.unsaved)
        return 'You have unsaved information,are you sure you want to leave this page?'
    })
  }

  render() {
    return <div>Stuff</div>
  }

})

export default withRouter(Page)
原文链接:https://www.f2er.com/react/301346.html

猜你在找的React相关文章