2017-02-13 7 views
0

Я использую библиотеку [email protected][email protected] и react-konva) для создания простой 2D-игры.KonvaJS: Невозможно предотвратить детекцию внутри пассивного прослушивателя событий из-за того, что цель обрабатывается как пассивная

При тестировании приложения в Chrome все хорошо. Тем не менее, когда я открываю Dev Tools и переключиться на панель устройства (для просмотра приложения на мобильном размере видовых) я получаю предупреждение:

Unable to preventDefault inside passive event listener due to target being treated as passive. 
See https://www.chromestatus.com/features/5093566007214080 

Я прочитал ссылку и исследовал {passive: true} вариант для AddEventListener. Тем не менее, я не прямо звоню AddEventListener в свой код, это все абстрагируется через Konva и React.

Кроме того, ни одно из событий кликов, связанных с созданными Konva элементами холста, не работает в режиме устройства. Если я выйду из панели инструментов устройства, все будет работать нормально, а элементы щелчка будут работать по назначению.

Как включить прослушиватели пассивных событий в Konva/React? (И это даже решение?)

+1

Я не уверен, откуда взялись эти ошибки. Но для включения поддержки сенсорных событий вам необходимо добавить сенсорные прослушиватели в свой код. Например. добавьте «onClick» и «onTap». – lavrton

+0

Раньше я использовал 'onClick'. Должен ли я заменить те (или добавить) 'onTap'? Для этого требуется пакет Tappable? –

+0

Вам не нужны никакие другие пакеты. Вам просто нужно добавить больше слушателей (события касания и события мыши - это разные события в Конве). – lavrton

ответ

0

Извините за беспокойство, это взломное изменение в Chrome 56 до improve scroll performance. Вероятно, вам нужно добавить подходящий touch-actionCSS rule, чтобы явно отключить прокрутку прокрутки.

+0

добавить, где или какой элемент? – novaline