看起来非常明确,但我在React组件中的验证无法按预期工作。显然,它应该只传递1到10之间的整数,但包括范围数字在内的任何输入都会触发else
方法的handleInput
部分:
class FormToRefresh extends React.Component {
constructor(props) {
super(props)
this.state = {value: 1}
this.handleInput = this.handleInput.bind(this)
}
handleInput(e) {
let input = e.target.value
const inputRange = [1,2,3,4,5,6,7,8,9,10]
if(inputRange.includes(input)) {
this.setState({value: input})
}
else {
alert("Wrong input")
this.setState({value: this.state.value})
}
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<input
type="text"
value={this.state.value}
onChange={this.handleInput}
/>
<button type="submit">
Refresh
</button>
</form>
</div>
)
}
}
答案 0 :(得分:3)
因为这个原因:
quiet: false
数组中的数组,但const inputRange = [1,2,3,4,5,6,7,8,9,10]
if(inputRange.includes(input))
将是一个字符串,因为它是输入框的内容。试试这个:
e.target.value
首先应将输入转换为整数。并记得做错误处理
答案 1 :(得分:2)
dplyr::recode()
节点上的 value
字段会返回input
因此,尝试将字符串解析为数字:
String