2017-08-06 91 views
0

我在這個過程中我傳遞的webapp做出反應的陣營原生版本。componentWillReceiveProps在陣營本土VS ReactJS

在本地做出反應,我有這樣的登錄頁面。我正在使用react-navigation。

componentWillReceiveProps(nextProps) { 
    const { requestStatus, currentUser } = nextProps 
    const getUserInProgress = get(requestStatus, GET_MY_DETAILS, true) 

    if (!getUserInProgress) { 
     if (currentUser) { 
     currentUser.verified_mobile ? this.props.navigation.navigate('Dashboard') : this.props.navigation.navigate('VerifyMobile') 
     } else if (!currentUser) { 
     console.log('not logged in') 
     } 
    } 
    } 

因此,在登錄頁面上,它會獲取用戶詳細信息並檢查移動設備是否已通過驗證,如果沒有,則會驗證移動頁面。

在驗證移動頁面,當調用時,在登錄頁面此componentWillReceiveProps仍然運行,即使它不是當前的活動頁面。

我在ReactJS相同的邏輯/代碼和它的行爲完全不同。

React Native是否正常?

編輯:

讓我澄清我的問題是什麼。

當我不是在登錄頁上,我是驗證移動頁面上。 componentWillReceiveProps仍在運行,儘管該頁面在歷史記錄中。這在我構建reactjs應用程序時沒有發生。它只發生在原生應用程序中。所以我想知道這是否是歷史堆棧中頁面的正常行爲來運行其componentWillReceiveProps?

+2

可否請您詳細說明您經歷了什麼行爲以及錯誤的具體情況? –

+1

是的,它仍然在堆棧中,所以它仍然存在。它只是沒有顯示。 – WilomGfx

回答

0

功能仍然執行反應母語,因爲它至今仍活躍在堆棧中,而在反應的應用程序,僅顯示的頁面是活躍所以在其它頁面的功能在某種意義上是「已禁用」。