在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ react-router點擊返回上一頁,如何不讓上一個頁面重新加載?

react-router點擊返回上一頁,如何不讓上一個頁面重新加載?

大致代碼如下(ps:使用的react-router4):

A頁面?zhèn)鲄⒔oB頁面

this.props.history.push({
    pathname:'/B',
    state:{
        param1:'Hello'
    }
})

B頁面接收參數(shù):

this.props.location.state.param1 //Hello

但是?。。?!-->>如果從B頁面C頁面,在C頁面點擊返回B頁面時,A傳給B的參數(shù)就會獲取不到導(dǎo)致報錯。

目前的解決方案是把參數(shù)存到localStorage里,但個人覺得這是規(guī)避問題 并沒有解決問題,如果B頁面是一個復(fù)雜的表單頁,從C返回到B時,表單數(shù)據(jù)就全不見了。。。如果把這些數(shù)據(jù)全放到localStorage,多惡心啊?。

我也嘗試通過組件的生命周期來阻止表單update,但很遺憾行不通...

這里沒轍了,求救各位大神,來幫幫忙。。。

總結(jié)下問題就是:點擊返回時,如何讓上一個頁面不更新?

回答
編輯回答
舊螢火

其實我覺得樓上說的用redux存儲參數(shù)是一個很好的辦法,但是redux如果不結(jié)合redux-persist,或者不把狀態(tài)存起來,刷新后狀態(tài)還是會丟失,本質(zhì)上還是存儲到本地。其實你可以只把A到B的參數(shù)到localStorage里,每次進入B頁面,獲取這個參數(shù),然后重新請求數(shù)據(jù),無論是A進入B還是C進入B,都重新請求。

2017年7月27日 00:49
編輯回答
傻叼

如果需要保存狀態(tài), 首先應(yīng)該考慮的不是阻止組件更新來保留組件內(nèi)state, 建議將參數(shù)保存到單獨的狀態(tài)樹中(如Redux)或者放在父組件中。

2017年2月28日 19:54