React native 反应本机导航选项卡导航器屏幕更改功能?

React native 反应本机导航选项卡导航器屏幕更改功能?,react-native,navigation,tabnavigator,React Native,Navigation,Tabnavigator,我正在应用程序中使用react native navigation选项卡导航器,在我的一个屏幕上有一个按钮,您可以在其中播放音乐。但是,如果按下按钮,然后导航到其他屏幕(使用选项卡栏),音乐将继续播放。我试图找到一种方法,当用户导航到另一个屏幕时,音乐停止 有没有类似于componentDidUnmount()方法的东西,我可以在屏幕更改时调用它?这里有两个选项(我知道),都不是很好 首先,您可以在选项卡更改时收听该更改,当相关选项卡不再处于活动状态时,停止播放音乐 第二,您可以尝试使用,但这让

我正在应用程序中使用react native navigation选项卡导航器,在我的一个屏幕上有一个按钮,您可以在其中播放音乐。但是,如果按下按钮,然后导航到其他屏幕(使用选项卡栏),音乐将继续播放。我试图找到一种方法,当用户导航到另一个屏幕时,音乐停止


有没有类似于componentDidUnmount()方法的东西,我可以在屏幕更改时调用它?

这里有两个选项(我知道),都不是很好

首先,您可以在选项卡更改时收听该更改,当相关选项卡不再处于活动状态时,停止播放音乐


第二,您可以尝试使用,但这让我感觉非常不舒服——我不确定它到底能起多大作用。

这里有两个选项(我知道),都不太好

首先,您可以在选项卡更改时收听该更改,当相关选项卡不再处于活动状态时,停止播放音乐

第二,你可以尝试使用,但我觉得这真的很烦人-我不确定它实际工作情况如何。

从现在开始,你可以在屏幕上订阅一些选项卡事件(willFocus、didFocus、willBlur、didBlur):

此处有更多详细信息:

从开始,您现在可以在屏幕上订阅一些选项卡事件(willFocus、didFocus、willBlur、didBlur):


这里有更多详细信息:

是的,我不知道在这种情况下如何使用onNavigationStateChange。看起来像是redux!谢谢你的输入是的,我不知道在这种情况下如何使用onNavigationStateChange。看起来像是redux!谢谢你的意见
componentDidMount() {
this._sub = this.props.navigation.addListener(
    'willFocus',
    this.yourCallback
  );
}

componentWillUnmount() {
  this._sub.remove();
}