2017-11-26 4 views
-1

Hallo, ich bin neu zu reagieren, also ertragen Sie mit mir. Unten ist mein Code ...Wie setze ich in react-native?

import React from 'react'; 
import { StyleSheet, Text, View, TouchableHighlight, AsyncStorage, ListView } from 'react-native'; 

export default class App extends React.Component { 

    constructor(){ 
     super(); 
     this.state = { 
      myLeader: 'Joe', 
     }; 
    } 

    setMyLeader(name){ 
     this.setState({ 
      myLeader: name 
     }); 
    } 

    render() { 
     return (
      <View> 
       <TouchableHighlight 

        style={{padding: 30}} 
        onPress={this.setState(myLeader: 'xxx')} 
       > 
        <Text>foo</Text> 
       </TouchableHighlight> 
      </View> 
     ); 
    } 
} 

Fehlermeldung ist dies. 'Variable kann nicht gefunden werden: myLeader'

Wie behebt man dieses Problem?

+0

onPress = {() => this.setMyLeader ('xxx')} // es hat funktioniert – sonicmario

Antwort

0

In Ihrem onPress Funktion können Sie:

a) gesetzt direkt den Zustand

onPress={() => this.setState({ myLeader: 'xxx' })} 

b) rufen Sie Ihre setLeader Funktion

onPress={() => this.setMyLeader('xxx')} 
+0

@sonicmario Könnten Sie bitte meine Antwort als richtig markieren? Klicken Sie einfach auf das Häkchen neben meiner Antwort! Danke – TimH

+0

Ihr Anser ist fantastisch, aber ich kann Ihre Antwort nicht markieren. Stimmen von Personen mit weniger als 15 Ruf werden aufgezeichnet, aber nicht die öffentlich angezeigte Post-Punktzahl ändern – sonicmario

+0

@sonicmario Ich weiß, dass Sie nicht upvote können. Sie müssen die Antwort akzeptieren. Unter dem "Stimmenzähler" sollte ein graues Häkchen-Symbol sein, sobald Sie darauf klicken, sollte es grün werden. Das bedeutet, dass die Antwort akzeptiert wird. Vielen Dank. – TimH