Я думаю, вы можете создать компонент, который возвращает tabNavigator. Затем вы можете получить доступ к реквизитам или делать все, что вы хотите, чтобы динамически добавлять или удалять вкладки. Здесь я использую последнюю версию реакции-навигации.
import React, {Component} from 'react-native'
import {createMaterialTopTabNavigator, createAppContainer} from 'react-navigation'
class DynamicTabs extends Component{
render(){
//I am using a prop here to update the Tabs but you can use state to update
//when the network request has succeeded or failed
const {shouldRenderTab} = this.props
const TabNavigator = createMaterialTopTabNavigator({
Tab1: Tab1Component,
Tab2: Tab2Component,
//Create a tab here that will display conditionally
...(shouldRenderTab ? {Tab3: Tab3Component} : {})
})
const ContainedTabNavigator = createAppContainer(TabNavigator)
return <ContainedTabNavigator/>
}
}
export default DynamicTabs
Это текущее решение, которое я использую, адаптированное из оригинального решения. размещено на github
.