Ответ 1
Так как React v0.14, вам больше не нужно называть React.initializeTouchEvents(true);
вручную.
http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#breaking-changes
Я изучаю 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>
);
}
};
Каков собственно правильный способ сделать это?
Так как React v0.14, вам больше не нужно называть React.initializeTouchEvents(true);
вручную.
http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#breaking-changes
При воспроизведении с событиями касания я добавил 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>
);
}
};
Привет, Ираэ!
Вы должны вызвать React.initializeTouchEvents(true) перед любым рендерингом. Проверьте реакцию документа здесь: http://facebook.github.io/react/docs/events.html#touch-events