2016-05-29 8 views
-2
export default class A extends Component { 

    constructor(props) { 
     super(props) 
     this.state = { 
      items: Items 
     } 
    } 

    componentWillMount() { 
     var ds = new ListView.DataSource({ 
      rowHasChanged: (r1,r2) => r1 !== r2 
     }); 

     this.dataSource = ds.cloneWithRows(this.state.items); 
    } 

    _renderRow(rowData) { 
     return (
      <View key = { rowData.id } > 
       <TouchableHighlight 
        onPress={() => console.log(this.state) }> 
        { Registry.render(rowData) } 
       </TouchableHighlight> 
      </View> 
     ); 
    } 

Ich versuche, den Status der Klasse aus der anonymen Funktion zu loggen, und ich bekomme undefiniert. Muss ich die Bereiche binden? Ich habe es ohne Erfolg versucht.Zugriff Klassenbereich von innerhalb der Funktion

Antwort

-1

Verwenden Sie => Lambda-Funktion, um lexikalische Bindung von diesem bereitzustellen. Ändern Sie den Code Ihrer Funktion wie folgt:

_renderRow = (rowData) => { 
    return (
     <View key = { rowData.id } > 
      <TouchableHighlight 
       onPress={() => console.log(this.state) }> 
       { Registry.render(rowData) } 
      </TouchableHighlight> 
     </View> 
    ); 
} 
+0

Ich verstehe nicht vollständig die Antwort, aber es hat funktioniert! – Brackets

Verwandte Themen