更改选项卡时调用类方法



我有以下标签导航结构:

tab1:声音播放器屏幕(您可以在其中播放声音),

tab2:信息屏幕,

TAB3:设置屏幕,

我希望声音播放器停止播放(类具有stop()方法),当我从Sound Player选项卡切换到Info或设置选项卡时。我尝试使用Tabbaronpress,但我真的不明白如何从那里调用停止方法。我尝试了这样的东西:

static navigationOptions = {
    tabBarOnPress: ({previousScene,scene,jumpToIndex}) => {
        previousScene.stop();
        jumpToIndex(scene.index);
    }
}

这很难使用react-navigation实现,因为事实证明,知道哪个屏幕当前具有库的当前状态非常棘手(请参阅此处的长期问题)。<<<<<<<<<<<</p>

一种解决方案是使用以React-Navigation-ICE-ICE-IS-HOC,将您的屏幕组件包装在可以检查的道具中提供布尔值。鉴于此,您可以将类似以下内容放在tab1componentWillUpdate中:

componentWillUpdate (nextProps) {
  if (!nextProps.isFocused) {
    // component is going out of focus, stop the music
    this.stop()
  }
}

注意:我建议使用我链接的库版本,它是帕特里克·沃兹尼亚克(Patrick Wozniak)的叉子,它更加最新。

相关内容

  • 没有找到相关文章

最新更新