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: mais je reçois une erreur. P> 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] p>
blockQuote> p>
3 Réponses :
Essayez d'utiliser la fonction de flèche à la place:
<button onClick={(e) => this.setState({carName : 'Honda'})}/>
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;
êtes-vous sûr? Sans Bind code> 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
Si vous utilisez un composant de classe, en appelant L'approche idéale consiste à appeler une fonction SetState () code> dans onclick () code>, vous appelez SSTATE dans Render () Code> qui est contre les principes de réagisme. Vous devez appeler le SSTATE en dehors de la fonction de rendu. manuelle code> comme ci-dessous; p> .bind (this) code> dans setstate code> p> p>
@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]