React Native - 当输入聚焦时单击不触发按钮

Jul*_*epe 7 javascript android reactjs react-native react-native-textinput

我目前正在 Android 上构建 React 本机移动应用程序,我意识到当输入聚焦时(用户在键盘上键入内容),单击事件不适用于其他元素。

例如,当用户在输入中键入内容时,如果用户想要单击“提交按钮”,则单击事件只会取消输入的焦点,但不会触发按钮上的单击事件。

有没有办法在输入焦点时使这两个事件发生?(取消焦点并单击都会触发的元素,就像在网页中一样)

我只发现这个主题似乎有类似的问题,但对我不起作用或者我使用错误? 当 TextInput 获得焦点时,不会触发任何触摸事件

我的代码看起来像这样:

import React, {useState} from 'react'
import { ScrollView, TextInput, TouchableOpacity} from 'react-native'

export default function App(){

    return (

        <ScrollView
            keyboardShouldPersistTaps="always"
        >
            <TextInput
                placeholder="Here is the input to be focused"
            />
            <TouchableOpacity
                style={{
                    backgroundColor : "#03a9f4"
                }}
                onPress={()=>{
                    console.log("Click triggered !")
                }}
            >
                Submit form
            </TouchableOpacity>
        </ScrollView>

    )

}
Run Code Online (Sandbox Code Playgroud)

Sye*_*Ali 5

我这样做了,它正在我的 Android 设备上运行

ScrollView上我这样做了

<ScrollView keyboardShouldPersistTaps='handled'>
Run Code Online (Sandbox Code Playgroud)

在我的 Button 函数中,我这样做了,我从React Native导入了Keyboard并使用了Keyboard.dismiss(); 在我的登录功能上

  const SignIn = async (data: any) => {
    Keyboard.dismiss();
    await getNotificatioPermission();
    const FCMToken = await getNotificationToken();
    const DeviceUUID = await getUniqueId();
    const payload = {
      ...data,
      DeviceUUID: DeviceUUID,
      FCMToken: FCMToken,
    };
    login(payload);
  };
Run Code Online (Sandbox Code Playgroud)