[英]Change input.value from onchange function (Reactjs)
我有一个与状态相关的输入。 高清变量。 但我想添加验证,以便如果输入负数,onblur 将输入的值设置为 HD 的先前值。
我只是不知道如何调用输入并使其更改其值。 我试图在这里引用它,以便不受控制地尝试更改它( https://www.pluralsight.com/guides/how-to-use-react-to-set-the-value-of-an-input )
使成为
<input
className="input"
name="HDin"
type="number"
defaultValue={this.state.HD}
onBlur={this.changeHD}
ref={this.HDref}
></input>
changeHD = (e) => {
let temp = this.state.HD;
const amnt = e.target;
let o = 0;
o = parseInt(e.target.value);
console.log(o);
if (o < 0 || o === "" || o == NaN) {
this.setState({ HD: temp });
this.HDref.value = temp;
this.setState({[e.target.value]: temp});
} else {
this.setState({ HD: o });
}
};
输入 value={this.state} 然后您可以使用 this.setstate 更改它
您可以使用setState
和可用的prevState
。
class Counter extends React.Component {
state = {
counter: 0
};
onChangeHandler = (e) => {
const currentValue = e.target.value;
if (currentValue <= -1) {
this.setState((prevState, props) => {
return { counter: prevState.counter };
});
} else {
this.setState({
counter: currentValue
});
}
};
render() {
return (
<div>
{this.state.counter}
<input type="text" onBlur={this.onChangeHandler} />
</div>
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.