Я создаю приложение React Native и для навигации использую React Navigation (V3). Для своих элементов пользовательского интерфейса я использую React Native Elements.
У меня есть экран, который я использую в нескольких навигаторах. Иногда он находится в корне стека, а иногда он проталкивается вместе со стеком. Я хочу программно добавить элемент headerLeft
на этот экран navigationOptions
в зависимости от его положения в стеке, потому что я хочу, чтобы отображалась либо кнопка возврата по умолчанию, либо значок меню бургера, если экран находится в корне стека ( потому что стек вложен в ящик).
Итак, я попробовал следующее:
export class ScannerScreen extends Component {
static navigationOptions = ({ navigation }) => ({
headerLeft:
navigation.state.index > 0 ? (
undefined
) : (
<Icon type="ionicon" name="ios-menu" onPress={navigation.toggleDrawer} />
),
title: strings.scannerTitle
});
// ...
Проблема в том, что это не работает, поскольку navigation.state.index
здесь undefined
. Как это сделать с помощью навигации React?
Изменить: По запросу я добавил снимок экрана с console.log(navigation)
(через <Icon />
s onPress
.)
index
с экрана? Есть способ получить к нему доступ при определении навигатора, но вы не можете получить доступ кheaderLeft
оттуда. - person J. Hesters   schedule 23.11.2018