React中使用路由進行父子組件的通信

最近我在學習 React.js 框架砂代,在此記錄一下我使用 react-router-dom 來實現(xiàn)單頁應用(SPA)的路由跳轉(zhuǎn)時蹋订,怎么處理父子組件間的通信。本文使用的是 HashRouter刻伊。

父組件中的路由配置

/** 
 * 我使用了 react-router-dom 里面的 Switch 進行頁面內(nèi)的路由更新
 * NavPage 是父組件
 * Content 是子組件
 */

class NavPage extends React.Component {
    render () {
        return (
            <div className='body'>
                <Switch>
                    <Route path='/navpage/content' component={Content} />
                </Switch>
            </div>
        )
    }
}


/**
 * 在父組件中定義一個方法露戒,實現(xiàn)父組件跳轉(zhuǎn)到子組件并傳參數(shù)過去
 * 注意: 第一次用 push 方法,后面用 replace 方法
 * func 里面放置的是讓子組件調(diào)用的時候可以回調(diào)告訴父組件的方法
 */

navigateToSon () {
    this.props.history.replace({pathname: '/navpage/content', data: {這里以對象的方式放置要傳遞的參數(shù)}, func: this.sonCallMe})
}

sonCallMe (args) {
    console.log("My Son Call Me Now: ", args)   // 這里接收子組件傳遞過來的args捶箱,輸出:"My Son Call Me Now: 我是你兒子"
}

子組件中的配置

class Content extends React.Components {

  // 獲取父組件 NavPage 初始化傳過來的數(shù)據(jù)
  componentWillMount () {
    console.log(this.props.history.location.data)
  }
  componentWillReceiveProps () {
    console.log(this.props.history.location.data)
  }

  // 觸發(fā)父組件傳遞過來的函數(shù)去與父組件通信
  callFather () {
      this.props.history.location.func("我是你兒子")
  } 

  render () {
        return (
            <div className='body'>
                <div onClick={this.callFather.bind(this)}></div>
            </div>
        )
    }

}

我是剛踏進 React.js 大門的小白智什,一路上踩了很多坑。希望可以幫助到跟我一樣的小白們丁屎,有 React 方面的問題可以留言或者私信我們一起交流~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荠锭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晨川,更是在濱河造成了極大的恐慌证九,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件共虑,死亡現(xiàn)場離奇詭異愧怜,居然都是意外死亡,警方通過查閱死者的電腦和手機看蚜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門叫搁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事渴逻〖驳常” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵惨奕,是天一觀的道長雪位。 經(jīng)常有香客問我,道長梨撞,這世上最難降的妖魔是什么雹洗? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任卧波,我火速辦了婚禮,結(jié)果婚禮上港粱,老公的妹妹穿的比我還像新娘。我一直安慰自己寸宏,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布氮凝。 她就那樣靜靜地躺著罩阵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪永脓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音威创,去河邊找鬼。 笑死肚豺,一個胖子當著我的面吹牛界拦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梳侨,長吁一口氣:“原來是場噩夢啊……” “哼日丹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哲虾,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤束凑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后汪诉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡拴签,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年蚓哩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岸梨。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡稠氮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出隔披,到底是詐尸還是另有隱情,我是刑警寧澤奢米,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布鬓长,位于F島的核電站,受9級特大地震影響涉波,放射性物質(zhì)發(fā)生泄漏炭序。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一惭聂、第九天 我趴在偏房一處隱蔽的房頂上張望易遣。 院中可真熱鬧,春花似錦豆茫、人聲如沸侨歉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽火脉。三九已至,卻和暖如春倦挂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背方援。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留犯戏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓种吸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坚俗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355