好吧,我有一个 react-native
具有多个屏幕的应用程序,每个屏幕都有一个顶部栏,其中有一个后退按钮,它的主要行为是按下此按钮时应用程序返回到主屏幕。我想要做的是将此行为复制到硬件后退按钮(现在通过按下硬件后退按钮应用程序关闭),我该怎么做?
更新:
我正在使用 react-navigation
和 redux
原文由 Eugen-Andrei Coliban 发布,翻译遵循 CC BY-SA 4.0 许可协议
好吧,我有一个 react-native
具有多个屏幕的应用程序,每个屏幕都有一个顶部栏,其中有一个后退按钮,它的主要行为是按下此按钮时应用程序返回到主屏幕。我想要做的是将此行为复制到硬件后退按钮(现在通过按下硬件后退按钮应用程序关闭),我该怎么做?
更新:
我正在使用 react-navigation
和 redux
原文由 Eugen-Andrei Coliban 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以通过下面的例子来做
import { BackHandler } from 'react-native';
class App extends Component {
constructor(props){
super(props);
this.backButtonClick = this.backButtonClick.bind(this);
}
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.backButtonClick);
}
componentWillUnmount(){
BackHandler.removeEventListener('hardwareBackPress', this.backButtonClick);
}
backButtonClick(){
if(this.props.navigation && this.props.navigation.goBack){
this.props.navigation.goBack(null);
return true;
}
return false;
}
}
原文由 Javascript Hupp Technologies 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2.4k 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答889 阅读✓ 已解决
1 回答869 阅读✓ 已解决
1 回答855 阅读✓ 已解决
你可以:
BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
handleBackButton(){ this.props.navigation.popToTop(); return true; }
popToTop 返回到堆栈中的第一个屏幕。
如果你在 Redux 中使用 react-navigation,你应该将 popToTop 作为一个动作来实现。