Javascript 是否更改导航中的父标题?
我有一个stackNavigator,在底部导航中包含一些单屏幕和底部导航我在底部的每个屏幕中都有一些我想要的其他屏幕更改父标题堆栈屏幕,但它不起作用我不知道为什么 这是我的密码Javascript 是否更改导航中的父标题?,javascript,react-native,react-navigation,react-navigation-stack,Javascript,React Native,React Navigation,React Navigation Stack,我有一个stackNavigator,在底部导航中包含一些单屏幕和底部导航我在底部的每个屏幕中都有一些我想要的其他屏幕更改父标题堆栈屏幕,但它不起作用我不知道为什么 这是我的密码 App.js ~ Parent const AppNavigator = createStackNavigator( { Register: { screen: Register, navigationOptions: () => ({ drawerLockM
App.js ~ Parent
const AppNavigator = createStackNavigator(
{
Register: {
screen: Register,
navigationOptions: () => ({
drawerLockMode: 'locked-closed',
}),
},
TabHome: {
screen: TabHome, // bottom navigator
},
},
{
initialRouteName: 'TabHome',
title: 'Audix', this title still in every other screens
}
);
TabNavigation.js
const TabHome = createBottomTabNavigator({
Home: {
screen: Home,
navigationOptions: {
tabBarLabel: 'Home',
},
},
Library: {
screen: YourLibrary,
navigationOptions: {
tabBarLabel: 'library',
// title: 'library', not work here !
// headerStyle: {
// backgroundColor: '#00f',
// },
},
},
});
如果你喜欢这个解决方案,我想你可以在每个屏幕上定义它
class Library extends React.Component {
static navigationOptions = {
title: 'Home',
};
...
}
如果您想为其他屏幕添加默认标题
const AppNavigator = createStackNavigator(
...,
{
defaultNavigationOptions: {
title: 'DEFAULT_TITLE'
}
}
)
我解决它,如果有人有一个解释,请告诉我,为什么静态不工作时,定义它在每个屏幕上的标签
const AppNavigator = createStackNavigator(
{
.....
TabHome: {
screen: TabHome,
navigationOptions: ({navigation}) => {
let {routeName} = navigation.state.routes[navigation.state.index];
let title;
if (routeName === 'Home') {
title = 'Home';
} else if (routeName === 'Browse') {
title = 'Browse';
} else if (routeName === 'Search') {
title = 'Search';
} else if (routeName === 'Radio') {
title = 'Radio';
} else if (routeName === 'Library') {
title = 'Library';
}
return {
title,
};
},
}
....
});
可悲的是,它不起作用了!我不知道为什么?它应该是有效的:\你能检查我下面的答案吗?