web-dev-qa-db-fra.com

null n'est pas un objet (évaluation de this.state.count)

Je fais face à l'erreur mentionnée ci-dessus lorsque j'essaie de définir un nombre pour chaque fois que le bouton est enfoncé.

export default class ViewIdeas extends Component{
get InitialState(){
  return {
  count : 0
  }
}
render(){
    return(
   .......
 <Button transparent>
             <Icon name='ios-thumbs-up-outline' style={{fontSize:21}} 
              onPress={() => this.setState({count: ++this.state.count})}/>
              <Text>{'Like' + this.state.count}</Text>
    </Button>
12
Avikrit Khati

Veuillez définir l'état comme ceci

constructor(props){
   super(props);

   this.state = {
      count: 0,
   }
}

Et puis vous pouvez faire this.state.count

19
Suhail Mehta

Il existe deux approches pour créer une classe React: ES6 et en utilisant React.createClass.

Les deux approches ne sont pas interchangeables. Vous devez initialiser l'état dans le constructeur lors de l'utilisation des classes ES6 et définir la méthode getInitialState lors de l'utilisation de React.createClass.

Voir le document officiel React sur le sujet des classes ES6 .

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { /* initial state */ };
  } // Note that there is no comma after the method completion
}

est équivalent à

var MyComponent = React.createClass({
  getInitialState() {
    return { /* initial state */ };
  },
});

Une autre chose à noter serait qu'il n'y a pas de virgule après la méthode constructeur.

0
atitpatel