我正在学习React JS,截至目前我在源代码,测试或官方文档上找不到任何示例。在文档中,touchStart
事件被称为支持,但handleTouchStart
不起作用。
我找到的唯一一个实际可行的例子是react-touch项目。
以下代码有效,但这是绑定的唯一方法吗?对我来说,它看起来像是一种廉价的解决方法。
var MyHeader = React.createClass({
handleTouchStart: function() {
console.log('handleTouchStart');
},
render: function() {
return this.transferPropsTo(
<header onTouchStart={this.handleTouchStart}>{title}</header>
);
}
};
实际上这样做的正确方法是什么?
答案 0 :(得分:20)
自React v0.14起,您不必再手动调用React.initializeTouchEvents(true);
。
http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#breaking-changes
答案 1 :(得分:7)
在玩触摸事件时,我将React.initializeTouchEvents(true)
添加到componentWillMount
组件生命周期方法,它似乎正常工作。
var MyHeader = React.createClass({
componentWillMount: function(){
React.initializeTouchEvents(true);
},
handleTouchStart: function() {
console.log('handleTouchStart');
},
render: function() {
return this.transferPropsTo(
<header onTouchStart={this.handleTouchStart}>{title}</header>
);
}
};
答案 2 :(得分:2)
Hy,Iraê!
您必须在任何渲染之前调用React.initializeTouchEvents(true)。请在此处查看反应文档:http://facebook.github.io/react/docs/events.html#touch-events