2017-02-13 12 views
0

[email protected]ライブラリ(React @ 15.4.2およびreact-konva)を使用して単純な2Dゲームを構築しています。KonvaJS:ターゲットがパッシブとして扱われているため、パッシブイベントリスナー内のデフォルトを無効にできません。

Chromeでアプリをテストするときには問題ありません。

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

他のパッケージは必要ありません。リスナーを追加するだけです(タッチイベントとマウスイベントはKonvaのさまざまなイベントです)。 – lavrton

答えて

0

ご迷惑をおかけして申し訳ありませんが、これはChrome 56の最新の変更点です。improve scroll performanceです。タッチスクロールを明示的に無効にするには、適切なtouch-actionCSS ruleを追加する必要があります。

+0

どこにまたはどの要素に追加? – novaline

関連する問題