【问题标题】:React Native: Different headers for different screens in Stack NavigatorReact Native:Stack Navigator 中不同屏幕的不同标题
【发布时间】:2020-10-01 07:11:09
【问题描述】:

我正在使用@react-navigation/stack 版本^5.5.1。我试图在我的堆栈导航中的不同屏幕上有不同的标题。例如,在Master 上,我不需要标题,即headerMode="none";在Home 上,我想要一个自定义标头,在Details 上,我想要一个不同的自定义标头。我如何实现这一目标?这是我当前的代码:

const AppStack = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Master" component={ Master } />
        <Stack.Screen name="Home" component={ Home } />
        <Stack.Screen name="Details" component={ Details } />
      </Stack.Navigator>
    </NavigationContainer>
  )
}

【问题讨论】:

    标签: react-native stack-navigator


    【解决方案1】:

    我刚刚想通了。

    首先,将headerMode="screen" 放在Stack.Navigator 上。这会将标题的控制移动到每个屏幕。然后对每个单独的屏幕使用如下所示的语法。

    const AppStack = () => {
      return (
        <NavigationContainer>
          <Stack.Navigator headerMode="screen">
            <Stack.Screen name="Master" component={ Master } options={{ headerShown: false }} />
            <Stack.Screen name="Home" component={ Home } options={{ headerTitle: props => <MyCustomHeader {...props} /> }}/>
            <Stack.Screen name="Details" component={ Details } options={{ headerTitle: props => <MyOtherCustomHeader {...props} /> }}/>
          </Stack.Navigator>
        </NavigationContainer>
      )
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多