我有一个模态,在模态中我有FormControl:
<FormGroup>
<span>Target</span>
<FormControl id={this.getbackground(account)}
type="text"
defaultValue={this.getMyNewTargetAsString(lp, account, button_state)}
value={this.getTargetValue(account_id)}
onChange={this.onTargetChange.bind(this, account_id)}/>
</FormGroup>
onChange方法:
onTargetChange: function (account_id, e) {
_account_target[["target", account_id]] = parseInt(e.target.value);
},
getMyNewTargetAsString方法:
getMyNewTargetAsString : function (lp, account, button_state) {
if (lp == undefined || account== undefined || button_state == undefined) {
return 0;
}
if (button_state == "on") {
return 0;
} else {
var new_target = Math.floor(lp * this.props.size);
return new_target;
}
},
getTargetValue方法:
getTargetValue: function (account_id) {
return _account_target[["target", account_id]];
},
getbackground方法:
getbackground : function (account) {
if (account == undefined) {
return "targetStyle";
}
if (Math.abs(account.size) > 100) {
return "targetWerrning";
}
return "targetStyle";
},
当我运行我的应用程序并且我正在更改目标时,更改非常非常慢(我添加的每个字符需要一两秒钟)。
有什么可以成为缓慢的因素吗?
我正在使用JavaScript,React和bootstrap(模式是由一个来自bootstrap表的按钮触发),该应用程序是我的spring boot jar的一部分。
的更新:
问题在于onChange = {this.onTargetChange.bind(this,account_id)}
在REACT中,在渲染中使用bind是不好的做法。
当你在渲染中使用bind时,它会使代码运行得非常慢。