0

我目前正在使用 React Navigation v4 并迁移到 v5。我正在使用官方文档进行升级,但不幸的是,我遇到了一个阻止程序。

在 V4 中,我可以执行以下操作:

export default function ExampleScreen(props) {
  return <View></View>
}

ExampleScreen.navigationOptions = ({navigation, navigationOptions}) => ({
  headerStyle: {
    ...navigationOptions.headerStyle,
    borderBottomWidth: 0
  },
  headerRight: () => <SearchBox navigation={navigation} />
})

但在 V5 中,我似乎无法访问navigationOptions参数,因此无法获取navigationOptions.headerStyle.

export default function ExampleScreen(props) {
  props.navigation.setOptions({
    headerStyle: {
      // I can't get the default styles here.
      borderBottomWidth: 0
    },
    headerRight: () => <SearchBox navigation={props.navigation} />
  })

  return <View></View>
}

我如何在 React Navigation V5 中做到这一点,因为它没有在其他任何地方记录?

4

1 回答 1

1

将默认值放入变量中并将其导出。然后在需要的地方导入并使用:

export const headerStyle = {
  /* whatever */
};

// Use in `screenOptions`
<Stack.Navigator screenOptions={{ headerStyle }}></Stack.Navigator>;

// Use in `setOptions`
navigation.setOptions({
  headerStyle: [headerStyle, { borderBottomWidth: 0 }],
  headerRight: () => <SearchBox navigation={props.navigation} />
});
于 2020-02-10T05:36:24.977 回答