2017-11-11 3 views
0

スタック・ナビゲータのルートとしてホーム画面があります。私はcomponentWillAppear関数を私のHome.js反応コンポーネントに追加しようとしましたが、私の連絡先画面から戻るボタンを押してその画面に戻ると起動しません。react-native componentWillAppearは起動しませんか?

import React, { Component } from 'react'; 
import {StackNavigator} from 'react-navigation'; 
import Contact from './Contact'; 

class Home extends Component { 
    static navigationOptions = {title:'Home'}; 

    componentWillAppear() 
    { 
     console.log('hello'); 
    } 
    render() 
    { 
    return <View></View>; 
    } 
} 

let Router = 
{ 
    Home: {screen: Home}, 
    Contact:{screen:Contact} 
} 

const Navigator = StackNavigator(Router); 
export default Navigator; 

Stacked Navigatorの子画面から返されたときにホーム画面が表示されるたびに常に発生するイベントハンドラがありますか?

+0

これは私が信じると予想される行動です。画面をプッシュすると、前の画面はアンマウントされないので、前の画面では戻っても何も発生しません。 – bennygenel

+0

には、componentOnFocus()やcomponentOnVisible()などのものがありますか? – John

+1

私はそこにいるとは思わない。前の画面で何かする必要がある場合は、2つのオプションがあります。最初のオプションはreduxまたは類似のパッケージを使用して、前のコンポーネントを更新するためのアクションを起動するか、[この回答](https://stackoverflow.com/a/46796224/)のようなカスタムバックボタンを使用することです2315280)、次に 'this.props.navigation.goBack()' – bennygenel

答えて

0

bennygenelあたりのコメントとして:

私はないと思います。前の画面で何かする必要がある場合は、 の2つのオプションがあります。最初のオプションは

Reduxのか 同様のパッケージを使用して、以前のコンポーネントを 小道具を更新するアクションまたは2番目のオプションを発射する this answerよう 何かをする習慣をバックに使用することで、ボタンで、その後this.props.navigation.goBack()
関連する問題