我有一个使用react-navigation的React Native应用程序.在我的一个屏幕中,我正在使用相机读取QR码什么工作正常,但我必须使用setState({camera:false})来防止多次加载QR码.通常,它有效.即使从主菜单
用户按’<'时遇到麻烦按钮(iOS /在标题中),他应该用相机重新进入页面.我无法找到我应该做setState({camera:true})的函数.没有react-navigation,就有标准生命周期(componentWillMount,...),但在这种情况下,我无法找到放置代码的位置,因此我可以检测到该页面已重新输入. 我知道https://github.com/react-community/react-navigation/issues/51但我仍然错过了解决方案.
我有一个类似的问题,我有屏幕A打开屏幕B,我想捕捉事件,我将从B回到屏幕A.我最好的猜测是通过导航功能从屏幕A向B发送回调:
this.props.navigation.navigate("ScreenB",{ onClose : ()=>{ // update your state to open back the camera } })
然后我需要捕获屏幕B上的结束事件,它基本上是componentWillUnmount:
在ScreenB组件类中:
componentWillUnmount(){ this.props.navigation.state.params.onClose() }