2016-09-08 3 views
0

Ich verwende in Kombination mit react-native-meteor. Seit Meteor 1.3 wird empfohlen, die Methode createContainer zu verwenden, wenn Sie React verwenden. Wenn ich jedoch 'export default' aus der Klassendefinition entferne und es in den Export-Standard createContainer (params => {...}, MyClass) verschiebe, verliere ich die Definition der Nav-Bar-Buttons. Wie sollte ich es schreiben, um die Definition meiner Navigationsleiste Knöpfe nicht zu verlieren? Thanks :)Hinzufügen von Navbar-Tasten zu reagieren-native-Navigation während der Verwendung von react-native-Meteor

Hier ist der gesamte Code meiner Komponente:

import React, {Component} from 'react'; 
import { 
    Text, 
    View, 
    StyleSheet, 
} from 'react-native'; 
import Meteor, { createContainer } from 'react-native-meteor'; 

class TestScreen extends Component { 
    static navigatorButtons = { 
     rightButtons: [{ 
      title: 'Reset', 
      id: 'resetButton' 
     }, { 
      title: 'Submit', 
      id: 'submitButton' 
     }] 
    }; 
    constructor(props) { 
     super(props); 
     this.props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(
      this)); 
    } 
    render() { 
     return (<View> <Text> Some text < /Text> 
     </View >); 
    } 
    onNavigatorEvent(event) { 
     if (event.type == 'NavBarButtonPress') { 
      if (event.id == 'resetButton') { 
       // reset here 
      } 
      if (event.id == 'submitButton') { 
       // submit here 
      } 
     } 
    } 
} 
export default createContainer(params => { 
    const handle = Meteor.subscribe('records'); 
    return { 
     records: Meteor.collection('records').findOne(), 
    }; 
}, TestScreen); 
+0

Mein Wissen über die "statische" Zucker ist begrenzt, sind Sie sicher, dass Sie es in diesem Fall verwenden möchten? Sie könnten einfach eine "get" -Methode bereitstellen, um die Variablen abzurufen. – HedgepigMatt

+0

Das ist es, was die Dokumentation der reaktiven nativen Navigation nahelegt. Gibt es eine andere Möglichkeit, Navbar-Schaltflächen zu definieren? – OndrejRohon

Antwort

1

Sie können sie dynamisch auf Navigator gesetzt:

this.props.navigator.setButtons({ 
    rightButtons: [ 
    { title: 'Reset', id: 'resetButton' }, 
    { title: 'Submit', id: 'submitButton' } 
    ] 
}); 
Verwandte Themen