gpt4 book ai didi

javascript - 我如何替换react-native中TextInput中的字符串

转载 作者:行者123 更新时间:2023-11-28 03:39:01 24 4
gpt4 key购买 nike

我是 Stackoverflow 的新手。我想知道如何在 TextInput 中输入字符串时替换它。由于我无法(即使没有 root/越狱也可以)更改设备的键盘语言,因此我想在输入时更改键码(unicode)。基本上将“w”更改为“红”。这是基本思想。

我已经创建了一个 JSON 对象,其中包含一些包含我想要的内容的键。假设有这样的事情。 json = {“w”=“红”}。这是迄今为止我所完成的完整代码(抱歉,这是有史以来最糟糕的代码):


const KeyCodes = { "q": "ް", "w": "އ", "e": "ެ", "r": "ރ", "t": "ތ", "y": "ޔ" };

<TextInput
style={styles.nameInput}
onChangeText={(nameInput) => this.setState({nameInput})}
value={this.state.nameInput}
//Here is where all hell breaks loose
onKeyPress={({ nativeEvent }) => {
nativeEvent.key in KeyCodes ? this.setState({ nameInput: KeyCodes.q }) : null
}}
/>

预期的行为是每次用户输入时,我希望从 KeyCodes 中获取并检查键值,如果该键存在,则将该键值从 json 替换为文本输入。我知道这不是一个函数,但这只是一个测试,我不知道如何从这里继续。也许将其移动到一个函数中并调用该函数等等。我所困惑的是,我如何将值替换为状态或输入字段中的 KeyCodes 实际值。现在它取代了已经存在的文本。并且替换有一个小的延迟,因此在替换为“红”之前显示“w”。所以基本上回顾一下,无论我按什么键,键值都将与 json 对象进行交叉检查,如果存在,则获取其值并将其替换为按下到 TextInput 的键。抱歉,如果这太长了,希望这是足够的信息。对于任何想知道的人来说,这是“Thaana”,即“迪维希语”语言。

最佳答案

您需要检查输入的最后一个数字并将其转换为所需的值,然后将其与字符串的其余部分连接。

 <TextInput
value={this.state.nameInput}
onKeyPress={({ nativeEvent }) => {
if (nativeEvent.key === 'Backspace') {
this.setState({nameInput:this.state.nameInput.slice(0, -1)})
}}}
onChangeText={text => {
const lastDigit = text[text.length - 1];
this.setState({
nameInput: this.state.nameInput.concat(
//checking if it is in your JSON
KeyCodes[lastDigit] ? KeyCodes[lastDigit] : ''
),
});
}}
/>

关于javascript - 我如何替换react-native中TextInput中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57450710/

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