2016-03-23 29 views
2

bir kod ('() this._pressRow' multisipliner) bir Peabody tanımsız değildir:doğal hata tepki:

renderMovie(product) { 
    <TouchableHighlight 
    onPress={this._pressRow()}> 
    <View style={styles.container}> 
    <View style={styles.rightContainer}> 
     <Text style={styles.title}>{product.brand_domain}</Text> 
     <Text style={styles.year}>{product.product_name}</Text> 
    </View> 
    </View> 
    </TouchableHighlight> 
    } 
    _pressRow(){ 
    this.props.navigator.push({ 
     title:'detail', 
     component:DetailView 
    }) 
    } 

1.red ekran ve hata günlük: tanımlanmamış bir Peabody değil ('Bu multisipliner. _pressRow() ')
2.i' this._pressRow = this._pressRow.bind (this); ' oluşturucu içinde() ama onun

3.doc çalışmaz example.but i kullanırsanız da renderRow fonksiyonunu bildirdiğinizde 'onPress = {this._onPressButton}', olay hiçbir etkisi

renderButton: function() { 
return (
    <TouchableHighlight onPress={this._onPressButton}> 
    <Image 
    style={styles.button} 
    source={require('image!myButton')} 
    /> 
    </TouchableHighlight> 
); 
}, 

cevap

2

burada bir kapsam sorun var: ListView, sen yönteme bu bağlama olmalıdır:

  1. Sen yönteme this bağlamak gerekir:
<ListView 
    dataSource={this.state.dataSource} 
    renderRow={this.renderMovie.bind(this)} 
/> 
  1. Sen ES6 şişman okları kullanabilirsiniz
renderMovie = (product) => { 
    <TouchableHighlight 
    onPress={this._pressRow()}> 
    <View style={styles.container}> 
     <View style={styles.rightContainer}> 
     <Text style={styles.title}>{product.brand_domain}</Text> 
     <Text style={styles.year}>{product.product_name}</Text> 
     </View> 
    </View> 
    </TouchableHighlight> 
} 

ve _pressRow yöntemi:

_pressRow(){ 
    this.props.navigator.push({ 
    title:'detail', 
    component:DetailView 
    }) 
} 
+1

sayesinde çok çalışmak olduğunu – shixforever

1

tıklayın iki olası çözüm vardır

düzeltmek için ..

<ListView 
    dataSource={this.state.dataSource} 
    renderRow={this.renderMovie.bind(this)} 
/> 
+0

çok teşekkürler, bu iştir, – shixforever

İlgili konular