Скрыть заголовок в навигаторе стека
Я пытаюсь переключить экран, используя как стек, так и навигатор вкладок.
const MainNavigation = StackNavigator({
otp: { screen: OTPlogin },
otpverify: { screen: OTPverification},
userVerified: {
screen: TabNavigator({
List: { screen: List },
Settings: { screen: Settings }
}),
},
});
В этом случае сначала запускается stacknavigator, а затем tabnavigator. и я хочу скрыть заголовки навигатора стека. WIt не работает должным образом, когда я использую navoptions как::
navigationOptions: { header: { visible: false } }
Я пытаюсь использовать этот код для первых двух компонентов, которые используются в stacknavigator.
если я использую эту строку, то получаю некоторую ошибку, например:
![введите описание изображения здесь]()
Ответы
Ответ 1
Я использую это, чтобы скрыть панель стека (обратите внимание, что это значение второго параметра):
{
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
}
Когда вы используете этот метод, он будет скрыт на всех экранах.
В вашем случае это будет выглядеть так:
const MainNavigation = StackNavigator({
otp: { screen: OTPlogin },
otpverify: { screen: OTPverification },
userVerified: {
screen: TabNavigator({
List: { screen: List },
Settings: { screen: Settings }
}),
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
}
);
Ответ 2
Просто используйте приведенный ниже код на странице, которую вы хотите скрыть заголовок
export default class Login extends Component {
static navigationOptions = {
header: null
}
}
обратитесь к Stack Navigator
Ответ 3
Просто добавьте это в свой фрагмент кода класса/компонента и заголовок будет скрыт
static navigationOptions = { header: null }
Ответ 4
Если вы хотите скрыть на определенном экране, чем это сделать:
// create a component
export default class Login extends Component<{}> {
static navigationOptions = { header: null };
}
Ответ 5
Если ваш экран является компонентом класса
static navigationOptions = ({ navigation }) => {
return {
header: () => null
}
}
введите это на целевом экране в качестве первого метода (функции).
Ответ 6
Если кто-то ищет способ переключения заголовка, поэтому в компонентеDidMount напишите что-нибудь вроде:
this.props.navigation.setParams({
hideHeader: true,
});
Когда
static navigationOptions = ({ navigation }) => {
const {params = {}} = navigation.state;
if (params.hideHeader) {
return {
header: null,
}
}
return {
headerLeft: <Text>Hi</Text>,
headerRight: <Text>Hi</Text>,
headerTitle: <Text>Hi</Text>
};
};
И где-нибудь, когда закончится задание окончания:
this.props.navigation.setParams({
hideHeader: false,
});
Ответ 7
использование
static navigationOptions = { header: null }
в классе/компоненте
class Login extends Component {
static navigationOptions = {
header: null
}
}
Ответ 8
Я использую header: null
вместо header: { visible: true }
Я использую реагирующий род Cli. это пример:
static navigationOptions = {
header : null
};
Ответ 9
На вашем целевом экране вы должны это кодировать!
static navigationOptions = ({ navigation }) => {
return {
header: null
}
}
Ответ 10
Это сработало для меня:
const Routes = createStackNavigator({
Intro: {
screen: Intro,
navigationOptions: {
header: null,
}
}
},
{
initialRouteName: 'Intro',
}
);
Ответ 11
const CallStack = createStackNavigator({
Calls: Calls,
CallsScreen:CallsScreen,
}, {headerMode: 'none'});
CallStack.navigationOptions = {
tabBarLabel: 'Calls',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-options' : 'md-options'}
/>
),
header: null,
headerVisible: false,
};
Ответ 12
Все ответы показывают, как это сделать с компонентами класса, но для функциональных компонентов вы делаете:
const MyComponent = () => {
return (
<SafeAreaView>
<Text>MyComponent</Text>
</SafeAreaView>
)
}
MyComponent.navigationOptions = ({ /*navigation*/ }) => {
return {
header: null
}
}
Если вы удалите заголовок, ваш компонент может оказаться в местах, где вы его не видите (когда у телефона нет квадратного экрана), поэтому важно использовать его при удалении заголовка.
Ответ 13
У меня та же проблема, но я сделал свою работу с заголовками в отдельных классах с помощью navigationOptions
и я использую createBottomTabNavigator
чей заголовок видим, а заголовок классов не виден. Я пробовал все, как headerMode: none
, header: null
и так далее, но не смог скрыть заголовок bottomTabNavigator
.