From e23a233cb0a105d326042fe5e34f2ea62edd8ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=9D=B0?= Date: Mon, 14 Oct 2024 10:48:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=89=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=B2=A1=E6=9C=89=E6=BB=9A=E5=8A=A8=E5=88=B0value?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E9=80=89=E9=A1=B9=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/sharp-games-appear.md | 5 +++++ .../src/components/WheelPicker/index.tsx | 11 +++-------- 2 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 .changeset/sharp-games-appear.md diff --git a/.changeset/sharp-games-appear.md b/.changeset/sharp-games-appear.md new file mode 100644 index 000000000..c87c7016f --- /dev/null +++ b/.changeset/sharp-games-appear.md @@ -0,0 +1,5 @@ +--- +'@td-design/react-native-picker': patch +--- + +fix: 修复有时候没有滚动到value对应的选项的bug diff --git a/packages/react-native-picker/src/components/WheelPicker/index.tsx b/packages/react-native-picker/src/components/WheelPicker/index.tsx index 1036333d3..5d52a44ef 100644 --- a/packages/react-native-picker/src/components/WheelPicker/index.tsx +++ b/packages/react-native-picker/src/components/WheelPicker/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo } from 'react'; +import React from 'react'; import { StyleSheet, View } from 'react-native'; import { PanGestureHandler } from 'react-native-gesture-handler'; import Animated, { @@ -27,13 +27,8 @@ export default function WheelPicker({ onChange, ...props }: WheelPickerProps) { - const translateY = useSharedValue(0); - - const initialIndex = useMemo(() => (value ? data.findIndex(item => item.value === value) : 0), [value, data]); - - useEffect(() => { - translateY.value = -itemHeight * initialIndex; - }, [itemHeight, initialIndex]); + const initialIndex = value ? data.findIndex(item => item.value === value) : 0; + const translateY = useSharedValue(-itemHeight * initialIndex); const snapPoints = new Array(data.length).fill(0).map((_, index) => -itemHeight * index);