React Native:“返回”功能

时间:2019-07-09 08:53:36

标签: react-native react-native-android react-navigation

有没有办法在反应导航中禁用“ goBack”功能?基本上,我有一个页面(示例页面A),人们在其中进行登录,然后此页面转到另一个页面(示例页面B)。我想禁用从页面B到页面A的goBack。

export default class ChatDisponibili extends Component {
  static navigationOptions = {
    title: "CHAT DISPONIBILI",
    headerStyle: {
      backgroundColor: '#3498db',
    },
    headerTintColor: '#fff',
    headerTitleStyle: {
      fontWeight: 'bold',
    }
  };

  ........................

  render() {
    return (
      <View style={styles.container}>
        <ScrollView>
          <FlatList
            data={this.state.data}
            keyExtractor={(item, index) => index.toString()}
            renderItem={this._renderItem}
          />
        </ScrollView>
        <View style={styles.footer}>
          <Text style={styles.footerTesto}>FOOTER DA CAMBIARE</Text>
        </View>
      </View>
    );
  }
}

2 个答案:

答案 0 :(得分:1)

将标头禁用为“无”只是从页面禁用标头的一种方法。 Android用户仍然可以单击本机后退按钮以返回。因此,您还需要禁用本机android按钮。

import {  BackHandler } from 'react-native'
componentDidMount() {
        BackHandler.addEventListener('hardwareBackPress', () => {
            return true;
          });

    }

这可以访问您以处理android后退按钮。有关处理android后退按钮的更多信息,请访问:https://facebook.github.io/react-native/docs/backhandler.html

答案 1 :(得分:0)

在您的代码中,您可以添加headerLeft

 static navigationOptions = {
    title: "CHAT DISPONIBILI",
    headerStyle: {
      backgroundColor: '#3498db',
    },
    headerTintColor: '#fff',
    headerTitleStyle: {
      fontWeight: 'bold',
    },
    headerLeft:()=>null
  };