This simple React button class triggers an infinite loop on click (i.e. logging 'click!' to the console 100s of times):
///////////////////////////////////////////////////////////////////////////////////////////
// TestButton.js
exports.TestButton = React.createClass({
onClick: function(event) {
event.preventDefault();
event.stopPropagation();
console.log('Click!')
},
render() {
return (
<div>
<button type="button" onClick={this.onClick}>Click me!</button>
</div>
)
}
});
///////////////////////////////////////////////////////////////////////////////////////////
// main.js
var TestButton = require('./TestButton.js').TestButton;
ReactDOM.render(
<div>
<TestButton/>
</div>,
document.getElementById('main')
);
The infinite loop is not triggered every time, but around every 10th time I load the page and click the button (in a non-repeatable manner). It's independent of the browser I use.
Any ideas where this is coming from?
I know this isn't repeatable in a JS-fiddle. The question is 'Where should I start to look in my setup for where this condition is coming from? Browserify? Imported scripts? React itself?'
onClickattr instead of assigning it? Also, what else does youronClickfunction do in your actual source? I'd start looking for a bug in the React code before thinking it could be something with the setup FWIW