2017-09-17 103 views
1

所以我有一個反應本機應用程序,我正在使用react-navigation選項卡導航器。我的問題是我也將我的註銷功能放在選項卡導航器上,但每個選項卡都需要一個屏幕。現在我想要發生的是當我單擊Logout時,它不必導航到任何地方,只需要清除asyncstorage然後重定向到登錄屏幕即可。反應原生導航選項卡註銷功能

在此先感謝!

P.S.我是新來的反應原生。

+2

只是語義/ UX註釋:通常你不會有一個標籤導航退出按鈕。你可能會有一個配置文件選項卡,然後在該屏幕上有一個註銷按鈕。 – Li357

+0

是的,我同意。但我只是遵循設計:) – Jed

+0

你能解釋一下這個問題,我從中得到的是,你需要整個工作代碼來描述你所描述的內容,而不是一個解決方案......給我們一些信息,比如Do你用redux?一些代碼示例等...感謝 –

回答

2

我在猜測你已經登錄你的用戶並且用AsyncStorage(session)存儲他的信息。

1)我如何處理react-navigation或react-native-router-flux是加載componentWillMount()函數將觸發註銷功能並將其重定向到您需要的場景中的組件。看下面的例子:

import React, { Component } from 'react' 
import { connect } from 'react-redux' 
import { NavigationActions } from 'react-navigation' 
import { logoutUser } from '../actions/index' //Action from Redux 

class LogoutScene extends Component { 
    componentWillMount() { 
    this.props.logoutUser() 
    NavigationActions.navigate({ routeName: someRouteName }) 
    } 
} 

const mapStateToProps = (state) => {} 

export default connect(mapStateToProps, {logoutUser})(LogoutScene) 

2)我強烈建議你使用終極版在你的項目,因爲雖然堅硬,是毫無意義的長期項目的開始讓你的生活那麼容易。爲了做到這一點,雖然你會需要比上面的例子更多的東西。我想你應該檢查這個https://medium.com/@jonlebensold/getting-started-with-react-native-redux-2b01408c0053

讓我知道,如果這是有道理的

+0

我無法解決這個問題,但我有另一個問題在這裏https://stackoverflow.com/questions/46675964/react-navigation-changing-tab-icons-on-tab-navigator-dynamically也許在此之後我可以應用你的答案。謝謝 – Jed