मैं अपने मूल निवासी प्रतिक्रिया में बैक बटन को संभालना चाहता हूं। मुझे पता है कि कंपोनेंटडिमाउंट में addEventListener का उपयोग कर सकते हैं और बैक बटन को संभालने के लिए कंपोनेंटWillUnmount का उपयोग कर सकते हैं।

मेरी समस्या यह है कि पेज अभी भी स्टैक नेविगेशन में मौजूद है, इसलिए दूसरे पेज में मेरे पास EventListener है, लेकिन मैं केवल एक पेज पर EventListener चाहता हूं।

बैक बटन दबाए जाने पर रिएक्टिव नेटिव ऐप से कैसे बाहर निकलें समस्या का समाधान नहीं करता है।

0
shayan 2 सितंबर 2019, 16:37
5
कृपया समस्याग्रस्त कोड का एक उदाहरण दिखाएं
 – 
James
2 सितंबर 2019, 16:46
स्वरूपित पाठ और वाक्य रचना।
 – 
Trenton McKinney
2 सितंबर 2019, 22:17

3 जवाब

इस समाधान का उपयोग करने का प्रयास करें अपने घटक को लपेटना आसान है जो अब स्क्रीन पर है

import { AndroidBackHandler } from 'react-navigation-backhandler';
<AndroidBackHandler onBackPress={this.onBackButtonPressAndroid}>
    <SomeComponent />
</AndroidBackHandler>
0
Alex Shtromberg 2 सितंबर 2019, 16:57

आपके ऐप नेविगेटर में

function onBackPress() {
  if (Actions.state.index === 0) {
    return false;
  }
  Actions.pop();
  return true;
}



const AppNavigator = conn()(Router);

  return (
    <AppNavigator navigator={navigator} backAndroidHandler={onBackPress} />
  );
0
Nooruddin Lakhani 2 सितंबर 2019, 17:06

आप react-navigation के withNavigationFocus HOC का उपयोग कर सकते हैं।

इसका उपयोग करके आप अपनी स्क्रीन के अंदर जानते हैं कि यह फोकस्ड है या नहीं। एक कार्यान्वयन का एक उदाहरण होगा:

componentDidMount=()=>{
    this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress)
}

componentDidUpdate=(prevProps)=>{
     if (prevProps.isFocused !== this.props.isFocused) {
     this.props.isFocused ?
     this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress):
     this.backHandler.remove()
     }
}

componentWillUnmount() {
     this.backHandler.remove()
}

नेविगेशनफोकस और बैकहैंडलर के साथ आयात करना न भूलें:

import { withNavigationFocus } from "react-navigation";
import { BackHandler } from "react-native";

आपके निर्यात में आपको यह करना होगा:

export default withNavigationFocus(*componentName*)
0
Auticcat 2 सितंबर 2019, 17:59