# Feature Request: Expose scrolling events (`onScrollStart` / `onScrollEnd`) or `onScrollingChange` for DateTimePicker
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, react-native
- 領域
- mobile
調査の方向性
Start by reading the DateTimePicker component and its native iOS, Android, and Windows picker implementations to see where scrolling state can be observed and exposed. The issue proposes either start/end callbacks or a boolean callback but gives no file or test names. Done means host apps can detect when the wheel is scrolling and disable actions until it settles.
索引モデルが issue の本文から書いたものです。
説明
Feature request
Summary
When the native wheel picker is scrolling, host UIs (e.g., a BottomSheet with action buttons) cannot detect that the wheel is still moving. This may cause users to press Confirm while the wheel is still decelerating, resulting in an incorrect or unintended selection.
I’m requesting new APIs to expose the picker’s scroll state, such as:
onScrollStart/onScrollEndcallbacks, or- a single
onScrollingChange(isScrolling: boolean)callback.
This would allow the host to temporarily disable buttons during scrolling to provide a smoother and safer UX.
Why it is needed
- Prevent accidental confirmation while the wheel is settling.
- Improve UX in modals and BottomSheets where confirm/cancel actions sit below the picker.
- Current APIs (
onChange) only fire after a value has fully settled — not while scrolling.
Proposed API
Option A — Separate callbacks
<DateTimePicker
value={value}
mode="time"
onChange={handleChange}
onScrollStart={() => setPickerScrolling(true)}
onScrollEnd={() => setPickerScrolling(false)}
/>
Option B — Single boolean callback
<DateTimePicker
value={value}
onScrollingChange={(isScrolling) => setPickerScrolling(isScrolling)}
/>
Code sample
function BottomSheet() {
const [value, setValue] = useState(new Date());
const [scrolling, setScrolling] = useState(false);
return (
<>
<DateTimePicker
mode="time"
value={value}
onChange={(event, newValue) => setValue(newValue)}
onScrollStart={() => setScrolling(true)}
onScrollEnd={() => setScrolling(false)}
/>
<View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
<Button title="Cancel" disabled={scrolling} />
<Button title="Confirm" disabled={scrolling} />
</View>
</>
);
}
- 主要言語
- JavaScript
- スター
- 2.9k
- フォーク
- 459
- 平均マージ
- 4日 16時間
- マージ済み PR(30日)
- 5
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
react-native-datetimepicker/datetimepicker のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
react-native-datetimepicker/datetimepicker#1070 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
react-native-datetimepicker/datetimepicker#1047 · コメント 6 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 20/100
react-native-datetimepicker/datetimepicker#1046 · コメント 1 件 ·
react-native-datetimepicker/datetimepicker の issue をすべて見る
似ている issue
-
chore
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
idean3885/claude-ops-agent#910 ·
メンテナーはふだん 1 日以内に返信
-
S: triage
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
oskarrough/agent-ide#29 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
check:passed logos:add
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
メンテナーはふだん 4 日以内に返信
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
WikiEducationFoundation/WikiEduDashboard#7258 ·
メンテナーはふだん 1 日以内に返信