Вы можете использовать события навигации , чтобы достичь того, что вы хотите. Я предлагаю вам создать компонент screen
и использовать метод navigation.addListener
в конструкторе, чтобы подписаться на события. Если вы спросите меня, я бы сказал, что одним из хороших способов является создание компонента Screen, который вы можете использовать в качестве конечной точки для навигации в приложении.
Когда вы визуализируете компонент, используя один из навигаторов реагирующей навигации, навигационный объект передается компоненту через подпорки. Таким образом, в конструкторе экрана вы можете получить доступ к navigation.addListener. Используйте этот метод для подписки на события focus
и blur
:
class ScreenComponent extends React.PureComponent {
constructor(props) {
super(props)
this.isFocused = true
this.props.navigation.addListener('didBlur', () => { this.isFocused = false })
this.props.navigation.addListener('didFocus', () => { this.isFocused = true })
}
}
В теле обработчиков событий вы можете реализовать выборку и проверку данных, когда вы будете sh.