How to Call a Function inside a Render in React/Jsx

lost9123193 picture lost9123193 · Oct 28, 2016 · Viewed 186.5k times · Source

I want to call a function inside some embedded html. I tried the following but the function isn't called. Would this be the incorrect way of calling a function inside a render method?

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>
   );
 }
}

Answer

dknaack picture dknaack · Oct 28, 2016

To call the function you have to add ()

{this.renderIcon()}