Comment appeler une fonction à L'intérieur D'un rendu dans React / Jsx
je veux appeler une fonction à l'intérieur d'un html intégré. J'ai essayé ce qui suit, mais la fonction n'est pas appelée. Serait-ce la mauvaise façon d'appeler une fonction à l'intérieur d'une méthode de rendu?
import React, { Component, PropTypes } from 'react';
export default class PatientTable extends Component {
constructor(props) {
super(props);
this.state = {
checking:false
};
this.renderIcon = this.renderIcon.bind(this);
}
renderIcon(){
console.log("came here")
return(
<div>Function called</div>
)
}
render() {
return (
<div className="patient-container">
{this.renderIcon}
</div>
);
}
}
28
demandé sur
Ian Kemp
2016-10-28 07:40:20
2 réponses
Pour appeler la fonction, vous devez ajouter ()
{this.renderIcon()}
59
répondu
dknaack
2016-10-28 04:48:39
class App extends React.Component {
buttonClick(){
console.log("came here")
}
subComponent() {
return (<div>Hello World</div>);
}
render() {
return (
<div className="patient-container">
<button onClick={this.buttonClick.bind(this)}>Click me</button>
{this.subComponent()}
</div>
)
}
}
ReactDOM.render(<App/>, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
cela dépend de votre besoin, vous pouvez utiliser this.renderIcon()
ou bindthis.renderIcon.bind(this)
UPDATE
c'est comme ça qu'on appelle une méthode en dehors du rendu.
buttonClick(){
console.log("came here")
}
render() {
return (
<div className="patient-container">
<button onClick={this.buttonClick.bind(this)}>Click me</button>
</div>
);
}
il est recommandé d'écrire un composant séparé et d'importation.
4
répondu
Saahithyan Vigneswaran
2018-01-24 08:24:33