2

Ich habe eine benutzerdefinierte Rechtnavigationstaste geschrieben, indem Sie dem Beispiel here folgen. Es scheint jedoch, dass die Methode onNavigatorEvent() nicht mehr aufgerufen wird, wenn eine benutzerdefinierte Komponente verwendet wird. Ich habe sogar versucht, das onPress-Ereignis als Prop zu meiner benutzerdefinierten Komponente zu übergeben, aber das kommt als undefined durch. Gibt es etwas, das mir fehlt? DieseWix React-Native-Navigation: onPress für benutzerdefinierte Komponente Schaltfläche

ist, wie ich die onPress prop bin vorbei an der Funktion, die der Schaltfläche zu erstellen:

Navigation.registerComponent('DoneButton',() => DoneButton); 

const DoneButton = ({text, backgroundColor, textColor, onPressAction}) => { 
    var containerStyle = [{backgroundColor: backgroundColor, width: 70, height:30, justifyContent:'center', borderRadius:4, shadowColor:'black', shadowOpacity:0.2, shadowRadius:1, shadowOffset:{width:0, height:2}}];    
    return(
     <TouchableOpacity style={containerStyle} onPress={onPressAction}> 
      <Text style={[{color:textColor, textAlign: 'center', fontSize:16}]}> 
       {text} 
      </Text> 
     </TouchableOpacity> 
    ); 
} 

_renderDoneButton(){ 
    this.props.navigator.setButtons({ 
     rightButtons: [ 
      { 
       id:   'Done' 
       component: 'DoneButton', 
       passProps: this._DoneButtonProps(), 
      }], 
    }) 
} 

_DoneButtonProps(){ 
    return { 
     text:    'Done', 
     backgroundColor: 'green', 
     textColor:   'white', 
     onPressAction:  this._doneAction.bind(this) 
    } 
} 

_doneAction(){ 
    alert('Done'); 
} 
+0

Hallo, können Sie einen Code teilen? die Registrierung, die 'Funktion' selbst – gran33

+1

@ gran33 Okay, fügen Sie mehr Code – pnizzle

+0

@ gran33 bitte aktualisieren und einen Blick auf den aktualisierten Code – pnizzle

Antwort

2

Seit der Version 1.1.282 Sie unserialisierbar Requisiten-Buttons, so die onPress Methode übergeben kann, die Sie vorbei sollte arbeiten.

+0

Die Requisiten sind gut bestanden. Außer für die OnPress. Beim Debuggen scheint jede Prop-Datei gültig, aber die onPressAction ist nicht definiert. Können Sie mir bitte ein funktionierendes Beispiel geben? – pnizzle

+1

Welche Version von RNN hast du? –

+0

Ich habe Version 1.1.262. Und die Requisiten werden durchgemacht, wie du gesagt hast. Es sei denn, Sie beziehen sich speziell auf die onPress Prop. Wenn ja, dann werde ich upgraden und erneut testen. – pnizzle

Verwandte Themen