有没有办法知道ReactNative中的组件是否在屏幕上?比如viewDidAppear或viewWillAppear

Dav*_*ave 7 react-native

如果您正在编写Swift,可以使用ViewController的生命周期钩子,viewDidAppear或viewWillAppear来了解特定的View是否在屏幕上.有没有办法在ReactNative中做类似的事情?看起来在文档中没有密切关注

cod*_*ker 3

我认为 React Native 不提供任何在弹出到上一个视图时调用的函数(与组件安装时调用的 componentWillMount() 等方法不同)。

但我认为您可以在导航到新场景时传递回调函数,并在弹出它之前调用此函数。

'B'当您从以下位置推送新组件时'A'

Component A

callBackPop() {

 // manipulate state
}

pushNewScene() {
  this.props.navigator.push({name: 'B', callBack: this.callBackPop});
}
Run Code Online (Sandbox Code Playgroud)

Navigator

renderScene(route, navigator) {

  <B navigator={navigator} callback={route.callBack} />

}
Run Code Online (Sandbox Code Playgroud)

Component B

function popToPrevious() {
     this.props.callBack();

     this.props.navigator.pop();

}
Run Code Online (Sandbox Code Playgroud)