ionic-team / ionic-team/ionic-framework

bug: scroll assist causes duplicate click and focus events to be fired

未关闭
#25,200 7 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
package: core type: bug
主要语言
TypeScript
星标
52.7k
派生
13.3k
平均合并
1 天 15 小时
30 天内合并 PR
51

描述

### Prerequisites

- [X] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/.github/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

- [ ] v4.x
- [ ] v5.x
- [X] v6.x
- [ ] Nightly

### Current Behavior

When ion-input and ion-item gains focus, an ionBlur event is fired incorrectly.
|Action|Events Fired|Status|
|---|---|---|
|Click inside ion-input (input gains focus)| 1. ionFocus, 2. ionBlur, 3. ionFocus| Incorrect |
|Click inside ion-input (input loses focus)| 1. ionBlur| Correct |

### Expected Behavior

|Action|Events Fired|
|---|---|
|Click inside ion-input (input gains focus)| 1. ionFocus |
|Click inside ion-input (input loses focus)| 1. ionBlur |

### Steps to Reproduce

1. Checkout the provided code
2. run ionic serve
3. Open inspector
4. Click in ion-input on the screen

### Code Reproduction URL

https://github.com/KWIPPED/ionic-event-bug

### Ionic Info

Ionic:

Ionic CLI : 6.19.0 (/usr/local/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/vue 6.1.2

Capacitor:

Capacitor CLI : 3.5.0
@capacitor/android : not installed
@capacitor/core : 3.5.0
@capacitor/ios : not installed

Utility:

cordova-res : not installed globally
native-run : 1.5.0

System:

NodeJS : v14.16.0 (/usr/local/bin/node)
npm : 6.14.11
OS : macOS Monterey

### Additional Information

_No response_

贡献指南

打开贡献指南

调研方向

Start with the provided reproduction at https://github.com/KWIPPED/ionic-event-bug and reproduce the focus sequence for ion-input and ion-item. Then trace the scroll-assist and focus-event handling in the Ionic Framework components. Done means focusing the input emits only ionFocus and losing focus emits only ionBlur, without duplicate events.

由索引模型根据 Issue 内容生成。

评估

技术栈
typescript
领域
frontend
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。