反应导航:检测新屏幕是完全集中的

时间:2018-04-25 17:03:29

标签: reactjs react-native react-navigation

使用当前版本的react-navigation,有两种方法可以通过(1)调用屏幕的prop isFocused的函数navigation来检查屏幕是否聚焦,或者(2)将组件挂钩到withNavigationFocused并检索道具isFocused

但是,两种方法在导航开始时始终返回true。在我的情况下,我需要在屏幕转换结束时触发的内容,即新屏幕完全聚焦。这是为了处理重渲染的孩子,比如相机或地图,应该在屏幕转换后渲染,以避免慢速过渡动画。

知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:4)

您可以尝试订阅导航生命周期事件,如docs

中所述
const didFocusSubscription = this.props.navigation.addListener(
  'didFocus',
  payload => {
    console.debug('didFocus', payload);
  }
);

repo

中的另一个示例用法