私のアプリでは反応ネイティブナビゲーションのタブナビゲータを使用しています。私の画面の1つには、音楽を再生できるボタンがあります。ただし、ボタンを押した後、タブバーを使用して別の画面に移動すると、音楽は引き続き再生されます。ユーザーが別の画面に移動したときに音楽を止める方法を見つけようとしています。React-Native-Navigation TabNavigator画面変更機能?
画面が変化したときに呼び出せるcomponentDidUnmount()メソッドに類似したものがありますか?
私のアプリでは反応ネイティブナビゲーションのタブナビゲータを使用しています。私の画面の1つには、音楽を再生できるボタンがあります。ただし、ボタンを押した後、タブバーを使用して別の画面に移動すると、音楽は引き続き再生されます。ユーザーが別の画面に移動したときに音楽を止める方法を見つけようとしています。React-Native-Navigation TabNavigator画面変更機能?
画面が変化したときに呼び出せるcomponentDidUnmount()メソッドに類似したものがありますか?
ここには2つのオプションがありますが、どちらも素晴らしいとは言えません。
まず、use Redux to to manage your navigator's stateとすることができます。タブが変更されると、その変更を聴いて、関連するタブがアクティブでなくなったときに音楽の再生を停止します。
第2に、onNavigationStateChange
を試してみることができますが、これは本当にうんざりしています。実際にうまくいくかどうかはわかりません。
v1.0.0-beta.28に開始し、あなたが今、いくつかのタブのイベント(willFocus、didFocus、willBlur、didBlur)に自分の画面で購読することができます:ここ
componentDidMount() {
this._sub = this.props.navigation.addListener(
'willFocus',
this.yourCallback
);
}
componentWillUnmount() {
this._sub.remove();
}
詳細:https://github.com/react-navigation/react-navigation/pull/3345
うん、私は理解できませんでしたこの状況でonNavigationStateChangeを使用する方法を説明します。それはreduxのように見えます!あなたのご意見ありがとうございます –