React 路由引數改變頁面不重新整理問題

2022-08-19 22:30:15 字數 651 閱讀 8339

最近寫的專案遇到遇到關於react路由的問題,原專案中,查詢的時候獲取文字框上的值並跳轉到查詢結果頁面,在componentdidmount函式中獲取路由上的關鍵字,向其他元件傳遞引數keywords,向後台查詢結果並返回。在重新查詢的過程中,發現雖然路由上的引數已經改變,然而頁面上的查詢結果並沒有更新。

原**:

//

定義變數

state=

//獲取值

componentdidmount())}//

傳遞引數

this.state.key}`}/>

隨後排查後發現頁面獲取key時是在componentdidmount中獲取的,而componentdidmount只在第一次渲染後呼叫,因此雖然路由改變了但是並沒有再次呼叫函式,具體recat的生命週期可參考

因此在引數改變的時候,可以利用componentwillreceiveprops來更新變數

//

元件更新時被呼叫

componentwillreceiveprops(nextprops))

}

注意:像article中也同樣需要加入componentwillreceiveprops函式,加入後即可正常重新整理頁面。

ps:如有更好的解決方法,歡迎交流

react路由引數改變,重新整理頁面

需求 當頁面url從 test?id 01 變成 test?id 02 時,介面需要根據引數獲取最新資料並且渲染頁面。解決方案 方式一 react16之前推薦使用componentwillreceiveprops生命週期 import react,from react import router f...

react路由引數傳遞

react路由的三種傳參方式 1 向路由元件傳遞params引數 引數傳遞 在註冊路由時接收引數 注意這裡後面時冒號在前面的 在要展示的元件內接收params引數 2 第二種,利用search傳遞引數 向路由元件傳遞引數 這種方式類似js常用方式傳遞引數 在路由註冊是接收引數 這裡是不需要接收的,正...

react路由跳轉傳遞引數

需求 路由跳轉的時候將引數傳遞給跳轉之後的頁面。路由 方案一 使用query,特點是引數會出現在url上,重新整理頁面資料不會丟失 browserhistory.push 取值 browserhistory.push 取值 this.props.location.state.deliverypric...