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

时间:2016-12-31 01:27:16

标签: react-native

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

中看起来没有近似的

2 个答案:

答案 0 :(得分:3)

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

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

'B'

推送新组件'A'

Component A

callBackPop() {

 // manipulate state
}

pushNewScene() {
  this.props.navigator.push({name: 'B', callBack: this.callBackPop});
}

Navigator

renderScene(route, navigator) {

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

}

Component B

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

     this.props.navigator.pop();

}

答案 1 :(得分:-3)

您正在寻找的是React组件生命周期方法,特别是 componentDidMount 。请在react docs中查看。