Реагировать на набор множественных стеководов одновременно. - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть табулатура, каждая вкладка которого является стековым навигатором.у каждого стекавигатора должны быть одинаковые defaultStackNavigationOptions.

Есть ли способ установить параметры по умолчанию для группы навигаторов (IE (HomeStack, SubjectStack, ...).defaultNavigationOptions)?

EDIT :Быстрое редактирование для уточнения.Мой текущий код такой:

const homeStack = createStackNavigator({
  Home: HomeScreen,
  Details: DetailsPage,
},
{
  defaultNavigationOptions: {
    headerStyle: { backgroundColor: constants.color.primary },
    headerTitleStyle: { color: "white" },
  }
});
const subjectStack = createStackNavigator({
  Subject: SubjectScreen,
  News: NewsPage,
},
{
  defaultNavigationOptions: {
    headerStyle: { backgroundColor: constants.color.primary },
    headerTitleStyle: { color: "white" },
  }
});
//...

Они загружены в таблей-лист:

export const HomeTabNavigator = createBottomTabNavigator(
  {
    Home: {
        screen: homeStack,
    },
    Subject: { 
        screen: subjectStack,
    },
    //...
  }
);

Я бы хотел установить defaultStackNavigation сразу для каждого StackNavigator вместо необходимости копировать-вставлятьлибо это, либо вызов функции каждый раз.

Если я перемещаюсь по HomeStack на вкладке, я не хочу, чтобы он влиял на текущий стек Subjectstack на вкладке темы.

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете сделать что-то вроде этого.

 const stackNavigator = createStackNavigator(
      {
        Home: { screen: HomeTab },
        Horse: { screen: HorseTab }
      },
      {
        defaultNavigationOptions: {
          headerStyle: {
            backgroundColor: "yellow"
          }
        },
        cardStyle: {
          backgroundColor: "blue"
        }
      }
    );

Для дальнейшего чтения вы можете обратиться к здесь

В вашем коде вы можете обновить как,

const stack = createStackNavigator({
  Home: HomeScreen,
  Subject: SubjectScreen
},
{
  defaultNavigationOptions: {
    headerStyle: { backgroundColor: constants.color.primary },
    headerTitleStyle: { color: "white" },
  }
});

или

const HomeTabNavigator = createBottomTabNavigator(
  {
    Home: {
        screen: homeStack,
    },
    Subject: { 
        screen: subjectStack,
    },
    //...
  }
);


HomeTabNavigator.navigationOptions = ({ navigation }) => ({
  headerTitle: (
    <Text style={{}}>
      Result
    </Text>
  ),
  headerStyle: {
    backgroundColor: "white"
  }
});


export { HomeTabNavigator }
...