2016-04-21 11 views
0

Ich folge dem gleichnamigen "BookBrowser" -Beispiel - eine gängige App, um React Native an n00bs zu unterrichten, die aber leider oft NavigatorIOS statt Navigator verwendet, um den Schülern die Navigation zu erklären.Wie kann ich ein renderRow-Objekt als Navigator-Prop übergeben?

Ich entschied mich, es zu nehmen und schaffte es statische Requisiten durch das 'route' Navigator Objekt zu übergeben. Allerdings bin ich dabei, ein renderRow-Objekt (aus ListView) zu übergeben. Beispiel:

renderResults() { 
    return (
     <ListView 
     dataSource={this.state.dataSource} 
     renderRow={this.renderBooks} 
     style={styles.listView} 
     /> 
    ); 
    } 

    renderBooks(book) { 
    return (
     <TouchableHighlight 
     style={styles.button} 
     underlayColor={'#F25F5D'} 
     onPress={this.onBookPress} 
     > 
     <View style={styles.row}> 
      <Text style={styles.title}> 
      {book.name} 
      </Text> 
     </View> 
     </TouchableHighlight> 
    ); 
    } 

Ich habe versucht, diese Funktion zu verwenden, um Buchnamenstütze zu übergeben.

onBookPress() { 
    this.props.navigator.push({name: 'bookdetails', dummy: this.props.name}); 
    } 

Ich bekomme undefiniert, wenn ich es vom Kind konsumiere. Ich probierte andere Kombinationen einschließlich this.props.book.name, etc.

Können Sie mich auf einen Arbeitscode zeigen oder mich führen, wo ich mich täusche?

PS: Wie ich bereits sagte, ich es geschafft, eine statische Stütze erfolgreich an die untergeordnete Komponente passieren, so ist die Frage, wie die gerenderte Reihe passieren ..

+0

Umm Ich glaube, Sie vermissen Buchobjekt in RenderRow. Sie rufen den Zeilenrenderer auf, aber Sie geben renderBooks kein Buch. Ich würde es so versuchen: 'renderRow = {(Buch) => this.renderBooks (Buch)}' so weit ich weiß, alles andere sieht gut aus – Vikky

+0

Dank @Vikky, aber das hat das Problem nicht gelöst. Bitte überprüfen Sie meine eigene Antwort für Details. –

Antwort

1

Also das ich dachte, nach einiger Zeit aus. Für zukünftige Leser dieses Beitrags muss ich nur das Buchobjekt als Argument an die onPress-Callback-Funktion übergeben. Dieses Objekt kann als Propeller für den Navigator zur Verfügung gestellt werden - ich wählte "route", wie es dem Navigator bereits zur Verfügung steht.

Verwandte Themen