I am working on React.
I have a method called on_render_cell, where I have created a div and I am inserting image in that div based on some conditions.
This is the approach I am following to insert image in the div.I get the desired images. Now my goal is:
To open a modal when the image is clicked. When I try to assign onClick={this.openModal()}, the modal doesn't pops up. I noticed that this is because this points to the <img>. Can anyone help me how can I call openModal() on click handler of image tag written in result variable of on_render_cell()?
export class ScheduleManager extends SampleBase {
constructor() {
        super(...arguments);
        this.state = {
            visible : false
        }
    }    
openModal() {
            this.setState({
                visible : true
            });
   }
    closeModal() {
        this.setState({
            visible : false
        });
    }
on_render_cell(args) {
let ele = document.createElement('div');
            var sum=0;
            var cursor=Event.find({Teacher:teacherName});
            cursor.forEach(function(event){
              if(convert(event.StartTime)===convert(args.date))
               sum = sum + parseFloat(event.Duration);
             });
              let hoursPerDay = sum/60;
              let percentHours=(hoursPerDay/maxHoursPerDay)*100;
              let result ='';
              if(percentHours===0)
              {
                result='<img id="aaa" ref="abc" className="weather-image" height="25px" width="25px" src="http://www.clker.com/cliparts/h/e/s/t/j/U/grey-circle.svg.thumb.png"  onClick={console.log(this)} />';
              }
              else if(percentHours<=25)
              {
                result = '<img className="weather-image"  src= "http://www.clker.com/cliparts/0/w/P/n/G/3/blue-circle-th.png" />';
              }
              else if(percentHours>25 && percentHours<=50)
              {
                result='<img className="weather-image"  src= "http://www.clker.com/cliparts/o/b/y/x/Z/c/yellow-dot-th.png" />';
              }
              else if(percentHours>50 && percentHours<=75)
              {
                result = '<img className="weather-image"  src= "http://www.clker.com/cliparts/1/A/W/q/h/h/orange-circle-th.png" />';
              }
              else
              {
                result='<img className="weather-image"  src= "http://www.clker.com/cliparts/3/m/Q/u/P/J/red-circle-small-new.svg.thumb.png" />';
              }
              ele.innerHTML = result; 
             (args.element).appendChild(ele.firstChild);
}
render(){
 return (
          <div>
          <input type="button" value="Open" onClick={() => this.openModal()} />
          <Modal 
                    visible={this.state.visible}
                    width="400"
                    height="300"
                    effect="fadeInUp"
                    onClickAway={() => this.closeModal()}
                >
                    <div>
                        <h1>Title</h1>
                        <p>Some Contents</p>
                        <a href="javascript:void(0);" onClick={() => this.closeModal()}>Close</a>
                    </div>
                </Modal>
          <p>Grey circle denotes no classes for the day</p>
          <p>Blue circle denotes less than 25% occupancy for the day</p>
)
}
}
Goal : Open Modal on image click. i.e, access openModal() of component