日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

react-router 页面离开 提示数据变更

發(fā)布時(shí)間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 react-router 页面离开 提示数据变更 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以前項(xiàng)目使用 react-router2.0, 業(yè)務(wù)層面頁面離開的時(shí)候需要彈出自己的彈出框,根據(jù)用戶的操作,進(jìn)行是否可以離開

? ? ? ?試了幾種方式都存在問題,實(shí)現(xiàn)的并不完美,沒辦法對用戶點(diǎn)擊瀏覽器后退支持的很好,除非是顯示系統(tǒng)默認(rèn)的confirm,同步處理

? ? ? ?1.setRouteLeaveHook

? ? ? ? ??

? ? ? ? ??setRouteLeaveHook沒有callback機(jī)制,只能是修改了變化標(biāo)志位,再push一遍,但是這個(gè)在實(shí)際情況也是有問題的,因?yàn)閔istory就一直是push了,跟用戶點(diǎn)后退不是一個(gè)交互了

? ? ? ? ? 2.onChange處理,?onChange可以在成功的時(shí)候,調(diào)用callback,但是用戶點(diǎn)擊瀏覽器后退的話,其實(shí)是沒有回調(diào)觸發(fā)的,不跳轉(zhuǎn)的情況下,沒辦法恢復(fù)url

? ? ? ? ??

? ? ? ? ? 其他情況下 ?頁面url不變化,

? ? ? ? ? ? ? ? ?a.可能是頁面跳轉(zhuǎn),沒有使用hashHistory進(jìn)行操作,直接操作了原生的location.history對象

? ? ? ? ? ? ? ? ?b.頁面刷新了測試,hashHistory對象length = 1,沒有地址可以回退

?

? ? ? ? ? 網(wǎng)上還有自己創(chuàng)建history的方式,項(xiàng)目中沒有嘗試,項(xiàng)目升級到react-router4.0的時(shí)候解決了問題,解決方式其實(shí)上一篇中已經(jīng)寫明了。

? ? ? ? ? 1.getUserConfirmation,在 自己創(chuàng)建history 或者定義?HashRouter 的時(shí)候,設(shè)置確認(rèn)彈出框,通過callback異步處理

? ? ? ? ? ? ?

? ? ? ? ?2.頁面離開通過,路由變化的時(shí)候的提示功能?Prompt 組件 ?https://reacttraining.com/react-router/core/api/Prompt?實(shí)現(xiàn)

? ? ? ? ? ?

? ? ? ? ? ?message也可以是方式,這個(gè)看實(shí)際項(xiàng)目需求

? ? ? ? ?3.操作history,需要使用路由的histroy對象,使用路由的組件和方法跳轉(zhuǎn),不要和原生的location.history串用

轉(zhuǎn)載于:https://www.cnblogs.com/legu/p/7091443.html

總結(jié)

以上是生活随笔為你收集整理的react-router 页面离开 提示数据变更的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。