我正在尝试计算经验年份,所以我将状态初始化为“ Experience = 0”,并将当前年份初始化为“ currentDt”状态
constructor(props){
super(props);
this.state = {
CurrentDt : new Date().getFullYear(),
DOJ : 0,
Experience : 0
}
}
获取“ DOJ”状态的用户输入并使用setstate()更新
GetJoiningDt = (event) =>{
const DojValue = event.target.value;
this.setState({
DOJ :DojValue
})
}
下面的代码用于减去currentYear和DOJ年,然后尝试通过减去的值来更新“ Experience”状态
calculateExperience = ()=>{
alert("Inside_calculateExperience");
let a = this.state.CurrentDt;
let b = this.state.DOJ;
var ExpValue = a - b; //2021-2015
alert(ExpValue); // 6
this.setState({
Experience : ExpValue //0
})
}
当我提醒“ ExpValue”的值时,它显示的值为6,但在setstate()中,其更新为0。并将状态转换为JSON。
GetAsJSONData = () =>{
console.log("JsonData");
this.calculateExperience();
let JsonData = {
Experience : this.state.Experience
}
let showdata = JSON.stringify(JsonData);
document.querySelector('label').textContent = showdata;
document.write(showdata);
}
render(){
return(
<form>
<input type="text" value={this.state.DOJ} onChange=
{this.GetJoiningDt} placeholder="Year of DOJ" name="fullname" />
<br/>
<button type="submit" onClick={this.GetAsJSONData}>Convert
Json</button><br></br>
<label></label>
</form>
)
}
您需要考虑异步和等待。我为您制作了一个沙盒版本。请检查下面的链接
https://codesandbox.io/s/mystifying-water-9w238?file=/src/App.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句