鍍金池/ 問答/HTML5  HTML/ react 生命周期相關(guān)

react 生命周期相關(guān)

左側(cè)是加載的目錄,對應(yīng)的路由規(guī)則是

<Route path='proxys/:proxyType/:proxyId' component={Proxy}>

右側(cè)Proxy組件,我需要根據(jù)proxyid向后臺請求數(shù)據(jù),

componentWillMount(){
    this.props.onQueryProxyInfo(this.props.proxyId)
}
拿到的數(shù)據(jù)通過通過redux設(shè)置到state當(dāng)中.

這樣好像只能觸發(fā)一次,當(dāng)我點(diǎn)擊左側(cè)另外一個(gè)平級的目錄時(shí)候不會再請求了.請問我要怎樣做?

回答
編輯回答
九年囚

兩個(gè)方案:

  1. 移動onQueryProxyInfo的執(zhí)行位置,放到外層容器中,當(dāng)你點(diǎn)擊菜單時(shí)就執(zhí)行。

  2. 添加componentWillReceiveProps方法,做判斷重至狀態(tài),重新執(zhí)行onQueryProxyInfo方法

2018年3月30日 19:32
編輯回答
心上人

添加componentWillReceiveProp 方法即可

2018年3月16日 11:47
編輯回答
寫榮

由于加載的是同一個(gè)組價(jià),所以 componentWillMount() 只會觸發(fā)一次,不要指望多次觸發(fā)調(diào)用里面的方法,我們可以在 shouldComponentUpdate(nextProps, nextState) 方法中判斷 path (你需要傳入組價(jià))屬性是否發(fā)生了改變,如果是則重新調(diào)用 action 重載數(shù)據(jù)。

我寫的代碼跟你略有不同,不過思想基本一致。

path 屬性傳入組價(jià):
圖片描述

判斷 path 重載數(shù)據(jù):
圖片描述

2017年12月19日 16:11