React-navigation:检测新屏幕是否完全聚焦

IT技术 reactjs react-native react-navigation
2021-05-09 15:30:59

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

但是,这两种方法在导航开始时总是返回 true。就我而言,我只需要在屏幕转换结束时触发一些东西,即新屏幕完全聚焦。这是为了处理重渲染的子项,例如相机或地图,应在屏幕过渡后渲染以避免慢速过渡动画。

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

1个回答

您可以尝试订阅导航生命周期事件,如文档中所述

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

repo 中的另一个示例用法