Параметры разрешаются снизу вверх для каждого BottomTab, поэтому параметры bottomTab могут быть определены только один раз.
Давайте рассмотрим немного более сложный макет, взятый из приложения для детской площадки:
Navigation.setRoot({
root: {
bottomTabs: {
id: 'BottomTabs',
children: [
{
stack: {
id: 'TAB1_ID',
children: [
{
component: {
name: 'navigation.playground.TextScreen',
passProps: {
text: 'This is tab 1',
myFunction: () => 'Hello from a function!'
},
options: {
topBar: {
visible: true,
animate: false,
title: {
text: 'React Native Navigation!'
}
},
}
}
}
],
options: {
topBar: {
visible: false
},
bottomTab: {
text: 'Tab 1',
icon: require('../images/one.png'),
selectedIcon: require('../images/one.png'),
testID: testIDs.FIRST_TAB_BAR_BUTTON
}
}
}
},
{
stack: {
children: [
{
component: {
name: 'navigation.playground.TextScreen',
passProps: {
text: 'This is tab 2'
}
}
}
],
options: {
bottomTab: {
text: 'Tab 2',
icon: require('../images/two.png'),
testID: testIDs.SECOND_TAB_BAR_BUTTON
}
}
}
},
{
component: {
name: 'navigation.playground.TextScreen',
passProps: {
text: 'This is tab 3',
myFunction: () => 'Hello from a function!'
},
options: {
topBar: {
visible: true,
animate: false
},
bottomTab: {
text: 'Tab 3',
icon: require('../images/one.png'),
selectedIcon: require('../images/one.png')
}
}
}
}
],
options: {
bottomTabs: {
titleDisplayMode: 'alwaysShow',
testID: testIDs.BOTTOM_TABS_ELEMENT
}
}
}
}
});
Как видите, параметры BottomTab
могут быть объявлены либо в параметрах стека, либо в параметрах компонента.Это связано с тем, что параметры разрешаются для каждой вкладки из ее текущего дерева макетов.Важно иметь в виду, что параметры разрешаются снизу вверх, это означает, что более глубокие параметры (объявленные дальше от root) имеют приоритет над более высокими параметрами (объявленными ближе к root).
Позволяет более внимательно взглянуть на BottomTab.Первый ребенок.В этом случае это stack
, который объявляет bottomTab
опции.Любой дочерний элемент, помещенный в этот стек, может переопределить параметры стека bottomTab
, так как он находится глубже в дереве компоновки. Параметры стека можно рассматривать как параметры по умолчанию.