Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 动态更改StackNavigator标题中的图标_React Native_React Navigation - Fatal编程技术网

React native 动态更改StackNavigator标题中的图标

React native 动态更改StackNavigator标题中的图标,react-native,react-navigation,React Native,React Navigation,给定以下列出的StackNavigator选项: static navigationOptions = { title: 'Main', headerRight: ( <MaterialIcons name="grid-on" size={26}/> ), }; 静态导航选项={ 标题:"主要",, 头灯:( ), }; 我想在用户按下后立即更改标题中的图标,我如何才能实现它?这就是您可以实现的方法 static navigationOptions = ({ nav

给定以下列出的StackNavigator选项:

static navigationOptions = {
title: 'Main', 
headerRight: (
    <MaterialIcons name="grid-on" size={26}/>
  ),
};
静态导航选项={
标题:"主要",,
头灯:(
),
};

我想在用户按下后立即更改标题中的图标,我如何才能实现它?

这就是您可以实现的方法

static navigationOptions = ({ navigation }) => {
    const { state } = navigation
    if (state.params.yourCheck) {
      return {
        title: 'Your Title',
        headerRight: (
          <Button
            title={'Button1'}
            onPress={() => {
              // do something
            }}
          />
        ),
      }
    } else {
      return {
        title: 'Your Title',
        headerRight: (
          <Button
            title={'Button2'}
            onPress={() => {
              // do something
            }}
          />
        ),
      }
    }
  }

使用React Navigation 5,您可以这样做

this.props.navigation.setOptions({
  headerRight: () => <Button
      onPress={() => this._scanNearByDevices()}
      title= "Scan"
      color="#000"
    />
});
this.props.navigation.setOptions({
headerRight:()=>此。_scanNearByDevices()}
title=“扫描”
color=“#000”
/>
});
每当你想更新你的标题按钮时,你可以使用上面的代码来动态更新

this.props.navigation.setOptions({
  headerRight: () => <Button
      onPress={() => this._scanNearByDevices()}
      title= "Scan"
      color="#000"
    />
});