国产探花免费观看_亚洲丰满少妇自慰呻吟_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的內容,這樣就可以讓組件重新被渲染。

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

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

圖片精選

主站蜘蛛池模板: 溆浦县| 囊谦县| 余姚市| 齐齐哈尔市| 深州市| 台江县| 宁武县| 金湖县| 新乡县| 白银市| 平顶山市| 闸北区| 阜阳市| 德州市| 寿光市| 砀山县| 民勤县| 海盐县| 曲周县| 金乡县| 华容县| 梁山县| 乐至县| 科技| 宿州市| 石狮市| 望江县| 泗水县| 封丘县| 城步| 长宁区| 棋牌| 渝中区| 老河口市| 呼图壁县| 枣阳市| 太白县| 望都县| 阿尔山市| 阳西县| 天水市|