Вызывать функцию / распознаватель каждый раз после перехода на новую страницу с помощью реакции-навигации? - PullRequest
0 голосов
/ 01 апреля 2020

Я использую навигацию React на своей выставке и хочу написать распознаватель, который будет вызывать функцию каждый раз для проверки данных, если значения равны нулю, загружать их из localStorage / Server каждый раз, когда мы переходим на любую другую страницу. Как мне этого добиться? есть ли событие навигации, которое может помочь мне установить глобальную функцию? Я попытался прочитать документы здесь, но не нашел хорошего решения https://reactnavigation.org/

Я хочу что-то подобное в моем приложении expo / реагировать. https://angular.io/api/router/NavigationEnd

Спасибо

1 Ответ

0 голосов
/ 01 апреля 2020

Вы можете использовать события навигации , чтобы достичь того, что вы хотите. Я предлагаю вам создать компонент 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.

...