React native 从屏幕返回时对导航执行功能作出反应

React native 从屏幕返回时对导航执行功能作出反应,react-native,react-navigation,React Native,React Navigation,我正在使用react导航在屏幕之间导航。我有一个主屏幕(main.js)和一个名为(Favorites.js)的屏幕 我使用此功能转到我的收藏夹屏幕 _btnFavoritos = async () => { const movies = this.state.myFavorites; console.log("Abrir Favoritos"); console.log(movies); this.props.navigation.navigate('

我正在使用react导航在屏幕之间导航。我有一个主屏幕(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 });

};

怎么可能有一个回调函数,当我退出收藏夹屏幕并返回主屏幕时,我触发一个能够更新主屏幕的函数?

不在主题范围内,但我会从
\u btnFavoritos
中删除
async
关键字,除非您的函数有更多需要它的代码,并且您根本没有添加它在这里

解决方案:

 _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
}
可能重复的