2015-10-01 6 views
5

मैं एंड्रॉइड के लिए प्रतिक्रिया-मूल में पिछली गतिविधि पर कैसे सेट कर सकता हूं?मैं एंड्रॉइड के लिए प्रतिक्रिया-मूल में पिछली गतिविधि पर कैसे सेट कर सकता हूं?

मेरे सोच है: index.android.js में

1 सेट _navigate

// 设置回退的堆栈 
var _navigator; 
BackAndroid.addEventListener('hardwareBackPress', function() { 
    if (_navigator && _navigator.getCurrentRoutes().length > 1) { 
     _navigator.pop(); 
     return true; 
    } 
    return false; 
}); 

2 RouteMapping में पास नाविक: सूची दृश्य में

RouteMapper: function(route, navigationOperations, onComponentRef) { 
     _navigator = navigationOperations; 
     if (route.name === 'detail') { 
      // 问题详情页 
      return (
       <DetailScreen 
        navigator={navigationOperations} 
        question={route.question} /> 
      ); 
     } else if (route.name == 'front') { 
      // 首页 
      return(
       <FrontScreen 
       navigator={navigationOperations} 
       /> 
      ); 

     } 
    }, 

3 सेट धक्का

gotoDetail: function(question: Object) { 
    this.props.navigator.push({ 
     id: question.question_id, 
     name: 'detail', 
     question: question 
    }) 

लेकिन यह काम नहीं करता है। जब मैं एंड्रॉइड में बैक बटन पर क्लिक करता हूं, तो यह ऐप से बाहर निकलता है?

मैं यह कैसे कर सकता हूं?

या कोई भी कुछ उदाहरण दे सकता है? के साथ बनाया

@Override 
public void onBackPressed() { 
    if (mReactInstanceManager != null) { 
     mReactInstanceManager.onBackPressed(); 
    } else { 
     super.onBackPressed(); 
    } 
} 

परियोजनाओं मूल निवासी प्रतिक्रिया:

उत्तर

3

आप अपने प्रोजेक्ट >/एंड्रॉयड/ऐप्स/src/मुख्य/जावा/com/< अपनी परियोजना > /MainActivity.java < के लिए निम्न कोड जोड़ने की जरूरत 0.12 सही ढंग से व्यवहार करेगा।

अधिक जानकारी के लिए इस समस्या को गिथब https://github.com/facebook/react-native/issues/3223 पर देखें।

+0

मैंने पाया कि कुछ छोटे गेटचास: भले ही आप प्रतिक्रिया-मूल के एनपीएम संस्करण को अपडेट करते हैं, आपको हाथ से चलने की आवश्यकता होगी, या अपनी मुख्य गतिविधि हाथ से अपडेट करनी होगी। इसे डिवाइस पर तैनात करने की आवश्यकता होगी, जेएस के ऑटो अपडेट इसे नहीं उठाएंगे। – ooolala

+0

मैंने यह कोड जोड़ा और अब मेरा प्रोजेक्ट नहीं चल रहा है, क्या मुझे इसे जोड़ने के बाद टर्मिनल में एनपीएम कमांड चलाने की ज़रूरत है? धन्यवाद –

+0

@Stefan Klasen हाय, जब मैं इस कोड को जोड़ता हूं तो मुझे "ReactInstanceManager को ReactActivity पर निजी पहुंच" क्यों मिलती है? – TeodorKolev

संबंधित मुद्दे