I have a component which re-renders itself without checking condition inside the shouldComponentUpdate. Its a large app, so cant provide any fiddle. Here is the screenshot of console where 'rerender' is getting printed before 'shouldComponentUpdate'

Where is rerender being logged? Are you sure shouldComponentUpdate returned false?
Unfortunately it鈥檚 very unlikely that we would be able to help without a (reduced) test case.
shouldComponentUpdate was not even called before rerendering the component. This screenshot might help. I'll try to code a reduced test case in a few hours.

I guess it would be helpful if you could print the stacktraces instead of just logging? That might save you from having to produce a reduced test case if you're lucky :)
Also, assuming everything actually works as it should. Have you tried logging mount/unmount as well? It might be that for some reason it's being unmounted and mounted, lack of shouldComponentUpdate makes total sense in that case. This would be my guess.
Not really related, but I can't imagine that calling ReactDOM.findDOMNode and innerHTML in shouldComponentUpdate is the best way to determine if an update is necessary.
Looks like you're using Chrome (am I right?). If so, please check this V8 JIT issue and try running the code in another browser.
Is there any chance that you are using this.forceUpdate()?
@syranide Excellent guess, component gets unmounted and re-mounted again. I'll close the issue for now, will re-check the issue why the component gets unmounted and will reopen if needed.
@keyanzhang There is no this.forceUpdate() in my app. Issue is caused due to unexpeced unmounting of component
@thymikee It works all the same in other browsers too. Issue is component gets unmounted unexpectedly
Most helpful comment
@syranide Excellent guess, component gets
unmountedand re-mountedagain. I'll close the issue for now, will re-check the issue why the component gets unmounted and will reopen if needed.@keyanzhang There is no
this.forceUpdate()in my app. Issue is caused due to unexpecedunmountingof component@thymikee It works all the same in other browsers too. Issue is component gets
unmountedunexpectedly