【发布时间】:2019-08-11 14:16:47
【问题描述】:
我是 Stackoverflow 的新手。我想知道如何在 TextInput 中输入字符串时替换它。因为我不能(即使没有root/越狱也是可能的)更改设备的键盘语言,所以我想在输入时更改键码(unicode)。基本上将'w'更改为'pension'。这是基本思想。
我已经创建了一个 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 替换为 TextInput。我知道这不是一个功能,但这只是一个测试,我不知道如何从这里继续。也许将它移入一个函数并调用该函数等等。我坚持的是,我如何将值替换为 KeyCodes 实际值到状态或一般的 InputField 中。现在它替换了已经存在的文本。并且替换有一个小的延迟,因此在被替换为“އ”之前会显示“w”。所以基本上回顾一下,无论我按下什么键,键值都将与 json 对象进行交叉检查,如果存在,则取其值并将其替换为按下到 TextInput 中的键。对不起,如果这太长了,希望这是足够的信息。对于任何想知道的人来说,这是“Thaana”,即“Dhivehi”语言。
【问题讨论】: