From 669ee2fe4e7004d434fda97a261e66ca2dc2372c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AD=B1=E9=87=8E?= Date: Mon, 9 Feb 2026 22:03:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=8C=89=E9=92=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=B8=8E=E9=94=AE=E7=9B=98=E5=BC=B9=E5=87=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CustomPopup/CustomPopup.tsx | 9 ++++++++- .../components/SelectStadium/StadiumDetail.tsx | 14 ++------------ src/store/keyboardStore.ts | 5 +++-- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/components/CustomPopup/CustomPopup.tsx b/src/components/CustomPopup/CustomPopup.tsx index 002c658..2c9fcfa 100644 --- a/src/components/CustomPopup/CustomPopup.tsx +++ b/src/components/CustomPopup/CustomPopup.tsx @@ -48,7 +48,14 @@ const CustomPopup: React.FC = ({ const touchStartY = useRef(0) // 使用全局键盘状态 - const { keyboardHeight, isKeyboardVisible, addListener, initializeKeyboardListener } = useKeyboardHeight() + const { keyboardHeight, isKeyboardVisible, addListener, initializeKeyboardListener, setKeyboardVisible } = useKeyboardHeight() + + // 当弹窗显示时,设置键盘为不可见 + useEffect(() => { + if (visible) { + setKeyboardVisible(false) + } + }, [visible, setKeyboardVisible]) // 使用全局键盘状态监听 useEffect(() => { diff --git a/src/publish_pages/publishBall/components/SelectStadium/StadiumDetail.tsx b/src/publish_pages/publishBall/components/SelectStadium/StadiumDetail.tsx index f4c4b9d..75e0beb 100644 --- a/src/publish_pages/publishBall/components/SelectStadium/StadiumDetail.tsx +++ b/src/publish_pages/publishBall/components/SelectStadium/StadiumDetail.tsx @@ -72,7 +72,6 @@ const StadiumDetail = forwardRef(({ }, ref) => { const [openPicker, setOpenPicker] = useState(false); //为了解决上传图片时按钮样式问题 const [scrollTop, setScrollTop] = useState(0); - const [isTextareaFocused, setIsTextareaFocused] = useState(false); // 记录 TextareaTag 是否 focus const { getDictionaryValue } = useDictionaryActions() const court_type = getDictionaryValue('court_type') || [] const court_surface = getDictionaryValue('court_surface') || [] @@ -200,13 +199,6 @@ const StadiumDetail = forwardRef(({ } } - // 当键盘显示且 TextareaTag 当前 focus 时才触发 changeTextarea - useEffect(() => { - if (isKeyboardVisible && isTextareaFocused) { - changeTextarea(true) - } - }, [isKeyboardVisible, isTextareaFocused]) - const changePicker = (value:boolean) => { setOpenPicker(value); } @@ -272,11 +264,9 @@ const StadiumDetail = forwardRef(({ onChange={(value) => { updateFormData(item.prop, value) }} - onBlur={() => { - setIsTextareaFocused(false) - }} + // onBlur={() => { + // }} onFocus={() => { - setIsTextareaFocused(true) changeTextarea(true) }} placeholder='有其他场地信息可备注' diff --git a/src/store/keyboardStore.ts b/src/store/keyboardStore.ts index 7bf8763..322e25a 100644 --- a/src/store/keyboardStore.ts +++ b/src/store/keyboardStore.ts @@ -150,12 +150,13 @@ export const useKeyboardStore = create((set, get) => ({ // 导出便捷的 hooks export const useKeyboardHeight = () => { - const { keyboardHeight, isKeyboardVisible, addListener, initializeKeyboardListener } = useKeyboardStore() + const { keyboardHeight, isKeyboardVisible, addListener, initializeKeyboardListener, setKeyboardVisible } = useKeyboardStore() return { keyboardHeight, isKeyboardVisible, addListener, - initializeKeyboardListener + initializeKeyboardListener, + setKeyboardVisible } }