ionic-team / ionic-team/ionic-framework
bug: ion-menu's swipe-gesture causes error on other pages
- 主要言語
- 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