0
votes

Réagir - OnClick 'Fonction attendue, objet reçu'

J'apprendais réagir et je voulais utiliser State State sans la mettre à l'intérieur de la fonction et l'appeler via la méthode Bind () comme ceci: xxx

mais je reçois une erreur.

React-DOM.Development.js: 13825 Erreur non capturée: argument invalide passé comme rappel. Attendu une fonction. Au lieu de cela reçu: [objet d'objet]


1 commentaires

@Jai, réact-dom.Development.js: 13825 Erreur non capturée: argument invalide passé comme rappel. Attendu une fonction. Au lieu de cela reçu: [objet d'objet]


3 Réponses :


1
votes

Essayez d'utiliser la fonction de flèche à la place:

<button onClick={(e) => this.setState({carName : 'Honda'})}/>


0 commentaires

0
votes

Ne liez pas et utilisez la fonction de flèche

import React, { Component } from 'react';

class Playground extends Component {
  render() {
    console.log('>>>>>  this.state : ', this.state);
    return (
      <div>
        <button type="button" onClick={() => this.setState({ carName: 'Honda' })}> try </button>
      </div>
    );
  }
}

export default Playground;


5 commentaires

êtes-vous sûr? Sans Bind Il n'entraînerait pas une erreur


@Jai oui, il ne fonctionnera que si O / P utilise la composante de classe


@Jai s'il vous plaît vérifier playground.js dans ma réponse, il fonctionne pour moi


@Jayvaghasiya, désolé, est-il vrai que onclick ou tout autre événement de réaction ne prend que la fonction?


@MII oui vous n'avez pas besoin de contraignation



0
votes

Si vous utilisez un composant de classe, en appelant SetState () dans onclick () , vous appelez SSTATE dans Render () qui est contre les principes de réagisme. Vous devez appeler le SSTATE en dehors de la fonction de rendu.

L'approche idéale consiste à appeler une fonction manuelle comme ci-dessous; xxx p> Deuxièmement, vous devriez devoir ne pas avoir .bind (this) dans setstate


0 commentaires