You've probably heard of iOS's dreaded 300ms tap delay. React's onClick
attribute falls prey to it. Facebook's working on a solution in the form of TapEventPlugin
, but it won't be made available until 1.0.
If you're reading this, you're probably working on a project that can't wait until they figure out how they want to publish it. This repo is for you.
When Facebook solves #436 and #1170, this repo will disappear.
var injectTapEventPlugin = require("react-tap-event-plugin");
injectTapEventPlugin();
See demo project for a complete working example.
var React = require("react");
var ReactDOM = require("react-dom");
injectTapEventPlugin = require("react-tap-event-plugin");
injectTapEventPlugin();
var Main = React.createClass({
render: function() {
return (
<a
href="#"
onTouchTap={this.handleTouchTap}
onClick={this.handleClick}>
Tap Me
</a>
);
},
handleClick: function(e) {
console.log("click", e);
},
handleTouchTap: function(e) {
console.log("touchTap", e);
}
});
ReactDOM.render(<Main />, document.getElementById("container"));
Use the demo project and it's README instructions to build a version of React with the tap event plugin included.