31999


Reactでbeforeunloadを使いたいのですが、windowのスコープの範囲に収まらないbeforeunloadイベントを拾えないため、componentWillUnmountが呼ばれたタイミングでconfirm関数を呼び、キャンセルされればcomponentWillUnmountをpreventしたいです。  
やりたいことは以下のような感じです。

[code]

    componentWillUnmount: function(e) {
      var result = confirm('遷移してもよろしいですか？');
      if (!result) {
        // prevent unmount
      }
    },
    
[/code]


CC BY-SA 3.0
2016-10-18T09:33:13.983
29661
2017-01-20T01:46:06.847
8576
question
javascript reactjs
ReactのcomponentWillUnmountでbeforeunload的なことがしたい


componentDidMountの時listenerを追加で、componentWillUnmountの時外せばいいと思います。

[code]

    onUnload(event) {
      var result = confirm('遷移してもよろしいですか？');
      if (!result) {
        // prevent unmount
      }　　　　
    　
    }
    
    componentDidMount() {
       window.addEventListener("beforeunload", this.onUnload)
    }
    
    componentWillUnmount() {
        window.removeEventListener("beforeunload", this.onUnload)
    }
    
[/code]


CC BY-SA 3.0
2017-01-20T01:46:06.847
31999
2017-01-20T01:46:06.847
20309
29661
answer