Кнопка «Назад» и заголовок не создаются в заголовке после сброса стека.
Код выполняется следующим образом.
StackNavigator -> TabNavigator -> reset -> StackNavigator ->TabNavigator -> StackNavigator
При нажатии кнопки на экране происходит переход к экрану с вкладками, а нажатие кнопки на экране с вкладками приводит к переходу на другой экран таблиц.
Навигатор.js
const SubScene = createStackNavigator({
Sub1 = {screen: Sub1},
Sub2 = {screen: Sub2},
...
)
const MainScene = createStackNavigator({
BottomTab: {screen: BottomTab},
SubScene: {screen: SubScene},
...
)
const SignUpScene = createStackNavigator({
SignUp: {screen: SignUp},
}, ...
const SigninScene = createStackNavigator({
HomeUI: {screen: HomeUI},
TopTab: {screen: TopTab},
Screen1: {screen: Screen1},
SignUpScene: {screen: SignUpScene},
MainScene: {screen: MainScene},
}, ...
const HomeScene = createStackNavigator({
SigninScene: {screen: SigninScene},
}, ...
export default class Navigator extends Component {
render() {
return(
<HomeScene />
);
}
}
Screen1.js
...
_onPressSubmitButton() {
const resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({routeName: 'MainScene'}))
]
})
this.props.navigation.dispatch(resetAction);
...
BottomTab.js
export defaults BottomTab = createMaterialTopTabNavigator({
Sub1: {screen: Sub1, ...},
...
})
Sub1.js
...
_onPressBtn(item) {
this.props.navigation.navigate('Sub2', {name: item.name});
...
Sub2.js
...
componentWillMount() {
const {setParams} = this.props.navigation;
setParams({name: this.props.name});
}
static navigationOptions = ({navigation}) => {
const {state} = navigation;
if (state.params != undefined) {
return {
title: state.params.name,
}
}
}
...
Я продолжил как sub2.js, но заголовок неменять.Кроме того, при возврате к this.props.navigation.navigate обычно появляется кнопка «Назад», но не сейчас.