gpt4 book ai didi

javascript - 如何将字符串转换为小写? .toLowerCase() 无法正常工作

转载 作者:行者123 更新时间:2023-12-05 02:31:24 27 4
gpt4 key购买 nike

我想制作一个以小写形式返回估算文本的输入字段。我正在使用博览会

const [login, setLogin] = useState('');
//...
<TextInput style={{backgroundColor:'#bbb'}}
value={login}
onChangeText={(val)=>setLogin(val.toLowerCase())}
placeholder="email or username"
></TextInput>

我在我的设备上测试时得到了一个奇怪的结果。

我的输入:'K' => login = 'k'

我的输入:'k' => login = 'kkk'

我的输入:'k' => login = 'kkkkkkk'

您可能需要尝试几次才能重新创建我的结果,因为这种情况并非每次都会发生。当我删除 .toLowerCase() 时,它可以正常工作。

我做了 runnable example供您测试。在网络模式下运行它工作正常,但是当我在我的设备上运行它时,出现了与我的项目中相同的错误。

这是一个video当我在 Android 10 上运行它时发生在我身上的事情。你可以看到它并不总是发生,但有时它注册时好像我按了三次“q”,而我只按了两次

最佳答案

我认为您遇到了一个已知的 react-native 错误,与 Android 平台上的文本输入和大写有关。打开 github 问题 #27449 .

作为解决方法,您可以强制文本输入在 Android 上使用 visible-password 键盘类型。

Working example供您测试:

import React, { useState } from 'react';
import { Text, View, StyleSheet, TextInput } from 'react-native';
import { Platform } from 'react-native';

export default function App() {
const [login, setLogin] = useState('');
return (
<View style={styles.container}>
<TextInput style={{backgroundColor:'#bbb'}}
value={login}
onChangeText={(val)=>setLogin(val.toLowerCase())}
keyboardType={Platform.OS === 'ios' ? 'default' : 'visible-password'}
placeholder="email or username"
></TextInput>
</View>
);
}

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
padding: 80,
},
});

解决方法归功于 simon-davies-avtura

关于javascript - 如何将字符串转换为小写? .toLowerCase() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71547005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com