国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解React-Router中Url參數改變頁面不刷新的解決辦法

2024-05-06 15:34:34
字體:
來源:轉載
供稿:網友

問題

今天在寫頁面的時候發現一個問題,就是在React Router中使用了Url傳參的功能,像這樣:

export class MainRouter extends React.Component {  render() {    return (      <BrowserRouter>        <Switch>          ...          <Route exact path={'/channel/:channelId'} component={ChannelPerPage}/>          ...        </Switch>      </BrowserRouter>    );  }}

按照官方文檔的說法,可以在ChannelPerPage這個組件中使用

this.props.match.params

來獲取url參數的值,但是我發現如果你在這個url下只將url中的參數部分改變,比如channelId從1變成2的時候,頁面并不會刷新。

解決辦法

查閱資料后發現這樣的根本原因是props的改變并不會引起組件的重新渲染,只有state的變化才會引起組件的重新渲染,而url參數屬于props,故改變url參數并不會引起組件的重新渲染。

后來發現React的組件中有一個可復寫的方法

componentWillReceiveProps(nextProps) { ...}

這個方法可以在React組件中被復寫,這個方法將會在props改變的時候被調用,所以你可以使用這個方法將nextProps獲取到,并且在這個方法里面修改state的內容,這樣就可以讓組件重新被渲染。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 沙雅县| 重庆市| 金川县| 蛟河市| 宜州市| 阿城市| 嵊泗县| 武安市| 泰宁县| 瑞金市| 慈溪市| 横峰县| 绥宁县| 博白县| 万源市| 武陟县| 西昌市| 阿合奇县| 璧山县| 揭西县| 梅河口市| 泽普县| 鹰潭市| 本溪市| 华坪县| 兰溪市| 漳州市| 聂荣县| 周宁县| 东源县| 汤阴县| 兴业县| 龙岩市| 衡阳市| 台江县| 京山县| 峨边| 吴江市| 双桥区| 弥渡县| 澄城县|