ionic-team / ionic-team/ionic-framework

bug: ion-menu's swipe-gesture causes error on other pages

オープン 初心者向け
#31,314 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
triage
主要言語
TypeScript
スター
52.7k
フォーク
13.3k
平均マージ
1日 15時間
マージ済み PR(30日)
51

説明

### Prerequisites

- [x] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#creating-an-issue).
- [x] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [x] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v8.x

### Current Behavior

On iOS, if you add ion-menu with swipe-gesture enabled on a page, and then navigate to a different page, and swipe from left side of screen to the right, there is a javascript error:
```
TypeError The provided value is non-finite
```

Here is stacktrace:
```
f://localhost/assets/p-CtukzcyX-BJW7t2Im.js:2:2217
[native code] forEach
f://localhost/assets/p-CtukzcyX-BJW7t2Im.js:2:2210 Q
f://localhost/assets/p-CtukzcyX-BJW7t2Im.js:2:5030 progressStep
f://localhost/assets/p-CtukzcyX-BJW7t2Im.js:2:5022
[native code] forEach
f://localhost/assets/p-CtukzcyX-BJW7t2Im.js:2:5002 progressStep
f://localhost/assets/smartRouter-CIhTEPpS.js:2:463597 onMove
```

It seems to come from the code:
```
const step = deltaX / this.width; // deltaX / 0 = NaN
this.animation.progressStep(NaN); // throws "The provided value is non-finite"
```
This could be due to swipe using a full document listener, but menu has 0 width since it's not currently rendered.

### Expected Behavior

No error

### Steps to Reproduce

See above.

### Code Reproduction URL

https://github.com/ionic-team/ionic-framework/blob/163cd24fc1eaa8bcce7a03524a375954cbb86bc4/core/src/components/menu/menu.tsx#L592-L593

### Ionic Info

[repositories/fareclock-tc-next] $ ionic info

Ionic:

Ionic CLI : 7.2.1 (/Users/jacob/.volta/tools/image/packages/@ionic/cli/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/vue 8.8.13

Capacitor:

Capacitor CLI : 8.4.1
@capacitor/android : 8.4.1
@capacitor/core : 8.4.1
@capacitor/ios : 8.4.1

Utility:

cordova-res : 0.15.4
native-run : 2.0.3

System:

NodeJS : v24.14.0 (/Users/jacob/.volta/tools/image/node/24.14.0/bin/node)
npm : 11.9.0
OS : macOS Unknown

### Additional Information

_No response_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start in core/src/components/menu/menu.tsx around lines 592-593, where the issue identifies deltaX divided by this.width and animation.progressStep being called. Reproduce the iOS navigation and left-edge swipe sequence with ion-menu enabled, then verify the swipe path no longer raises the non-finite-value error when the menu is not rendered.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
typescript
領域
frontend, mobile-dev
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
72/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。