2016-01-11 11 views
5

Ich habe Probleme mit der Verwendung von React Native 0.16 (Android). Die Frage ist, wie Requisiten an routeMapper von Navigator.NavigationBar übergeben werden, die zu <Navigator /> Komponente gehören.Native Reagieren: Wie Requisiten an 'routeMapper' von 'Navigator.NavigationBar' übergeben?

Meine Code-Struktur wie unten

class MyApp extends Component {  
    ... 

    static NavigationBarRouteMapper = { 
     LeftButton(route, navigator, index, navState) { 
      // ### I want to call 'functionABC' here. What Should I do? 
     }, 
     RightButton(route, navigator, index, navState) { 
      // ### I want to call 'functionABC' here. What Should I do? 
     },    
     Title(route, navigator, index, navState) { 
      // ### I want to call 'functionABC' here. What Should I do? 
     },   
    }  

    ... 

    functionABC() { 
     ... 
    }  

    ... 

    render() { 
     return (
      <View> 
       <Navigator 
       initialRoute={{ 
       name: 'Main', 
       index: 0, 
       }} 
       renderScene={this.renderScene.bind(this)} 
       sceneStyle={{marginTop:50}} 
       navigationBar={ 
        <Navigator.NavigationBar 
        routeMapper={MyApp.NavigationBarRouteMapper} 
        /> 
       } 
       ref="nav" /> 
      </View> 
     ); 
} 

Antwort

10

Sie die Mapperobjekt könnte dies jedes Mal mit einer Funktion, in Ihrem Code generieren kann nur sein:

class MyApp extends Component {  
    ... 

    static NavigationBarRouteMapper = props => ({ 
     LeftButton(route, navigator, index, navState) { 
     }, 
     RightButton(route, navigator, index, navState) { 
     },    
     Title(route, navigator, index, navState) { 
     },   
    })  

    render() { 
     return (
      <View> 
       <Navigator 
       initialRoute={{ 
       name: 'Main', 
       index: 0, 
       }} 
       renderScene={this.renderScene.bind(this)} 
       sceneStyle={{marginTop:50}} 
       navigationBar={ 
        <Navigator.NavigationBar 
        routeMapper={MyApp.NavigationBarRouteMapper(this.props)} 
        /> 
       } 
       ref="nav" /> 
      </View> 
     ); 
} 
+0

Danke, @gre. Es funktionierte. Ich denke, ich hätte mehr ES6 Syntax studieren sollen. –

Verwandte Themen