React native 动态响应本机更改抽屉标签

React native 动态响应本机更改抽屉标签,react-native,react-navigation,React Native,React Navigation,我正在使用react导航,并且有一个应用程序,在这个应用程序中,如果用户更改或不更改版主权限,我需要能够动态更改抽屉标签 我在组件中设置了抽屉标签 static navigationOptions = { title: 'Browse', drawerLabel: 'My Bookings', drawerIcon: ({tintColor}) => <Image source={navIcon} style={[styles.icon, {tintCol

我正在使用react导航,并且有一个应用程序,在这个应用程序中,如果用户更改或不更改版主权限,我需要能够动态更改抽屉标签

我在组件中设置了抽屉标签

  static navigationOptions = {
    title: 'Browse',
    drawerLabel: 'My Bookings',
    drawerIcon: ({tintColor}) => <Image source={navIcon} style={[styles.icon, {tintColor}]} />,
    header: null,
  };
如何更改抽屉标签?

保留以下代码:

static getDerivedStateFromProps(props, state) {
   if (props.admin) {
     props.navigation.setParams({drawerLabel: 'Manage Bookings'});
   }
}
并尝试改变这一点:

static navigationOptions = {
  ...
  drawerLabel: 'My Bookings',
  ...
};
为此:

static navigationOptions = ({ navigation }) => {
  const { params } = navigation.state; 
  return {
    ...
    drawerLabel:  params.drawerLabel || 'My Bookings',
    ...
  }
};

谢谢你的回答,善良的陌生人!它可以工作,但只有在用户加载组件时才更改名称。我应该看到一个组件即将出现。我想我可能需要重新考虑一下它是如何得到它的抽屉标签的。退一步,仔细考虑了一下。我刚刚为管理员创建了另一个抽屉堆栈。超级简单和工程。感谢您花时间和精力提供帮助!起来检查一下。
static navigationOptions = ({ navigation }) => {
  const { params } = navigation.state; 
  return {
    ...
    drawerLabel:  params.drawerLabel || 'My Bookings',
    ...
  }
};