реагировать на выполнение функции навигации при возвращении с экрана - PullRequest
0 голосов
/ 27 июня 2018

Я использую реагирующую навигацию для навигации между моими экранами. У меня есть главный экран (Main.js) и экран с именем (Favorites.js).

Я использую эту функцию, чтобы перейти на экран избранного.

 _btnFavoritos = async () => {

    const movies = this.state.myFavorites;
    console.log("Abrir Favoritos");
    console.log(movies);
    this.props.navigation.navigate('screenFavoritos', { movies: movies });

};

как можно иметь функцию обратного вызова, чтобы при выходе из экрана избранного и возврата к главному экрану я запускал функцию, способную обновить мой основной файл?

1 Ответ

0 голосов
/ 27 июня 2018

Не по теме, но я бы удалил ключевое слово async из _btnFavoritos, если ваша функция не имеет больше кода, который требует этого, и вы просто не добавили его сюда

Решение:

 _btnFavoritos = () => {    
    const movies = this.state.myFavorites;
    console.log("Abrir Favoritos");
    console.log(movies);
    this.props.navigation.navigate('screenFavoritos',
            {
                    movies: movies,
                    updateMain: () => this.updateMain()
            });
};

updateMain = () => {
    // Sample update logic
    fetch('https://someEndpoint.com')
    .then(res => res.json())
    .then(json => this.setState({ movies: json })
    .catch(err => console.warn(err.message)
}

Favorites.js

componentWillUnmount(){
    const { params } = this.props.navigation.state
    params && params.updateMain && params.updateMain() // Checking that the function was passed down
                                               // as a navigation prop before executing
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...