【发布时间】:2021-04-23 22:02:38
【问题描述】:
我有多个文本输入来创建一个 4 位数的 OTP 条目。一旦填满,我显然希望将它们全部组合起来,向我展示最终的 OTP。 例子: 2 4 3 6
虽然每个数字在不同的文本框中,但需要将它们组合起来,然后验证为 (2436)
我创建了一个名为otpEntry: '' 的状态,然后将其添加到所有四个文本框。问题是状态每次都被覆盖。相反,我想保持状态并添加下一个数字。例如,如果用户在移动到第二个框时输入 (2) 并进入 (4),otpEntry 的状态应该是 (24) 而不是 4。我尝试按照以下方式进行操作,但没有成功。
<TextInput
onChangeText={(otpEntry) => this.setState({otpEntry}), () => this.dig2.current.focus()}
style={styles.otpInput}
ref={this.dig1}
placeholder="X"
keyboardType="number-pad"
/>
<TextInput
onChangeText={(otpEntry) => { this.setState(prevState => ({ otpEntry: prevState.otpEntry.concat(otpEntry) })) }, () => this.dig3.current.focus()}
style={styles.otpInput}
ref={this.dig2}
autoFocus = {this.state.otpdig2}
placeholder="X"
keyboardType="number-pad"
/>
【问题讨论】:
标签: javascript reactjs react-native