我正在为基本的“数学事实”构建一个应用程序,该学生将有60秒的时间来测试其加法,乘法等。
当学生输入正确的数字(与答案相比)时,它将评估答案-相应地评分,然后自动继续下一个问题this.props.selectProblem()
只会改变问题和答案-不相关输入。
唯一不起作用的是-当用户键入一个数字的答案时,它不会将TextInput组件设置为空字符串,但是我可以将其设置为任何其他字符串长度,只是不为零(这就是我所需要的)。
两位数答案可以正常工作。
我困惑为什么长度大于0的字符串起作用,除非答案是2位数字。
state = {
userInput: ""
}
handleInput = (text) => {
this.setState({ userInput: text}, () => {
let { userInput } = this.state;
let { answer } = this.props;
if (userInput.length === answer.toString().length) {
if (+userInput === +answer) {
this.setState({ userInput: "" }, () => {
// add points for correct
})
}
else {
this.setState({ userInput: "" }, () => {
// subtract points for incorrect
});
}
this.props.selectProblem();
}
})
内部渲染
<TextInput style={styles.input}
onChangeText={(text) => this.handleInput(text)}
value={this.state.userInput.toString()}
maxLength={this.props.answer.length}
/>