onChange更新非常缓慢

时间:2018-01-24 16:20:08

标签: javascript twitter-bootstrap reactjs


我有一个模态,在模态中我有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时,它会使代码运行得非常慢。

0 个答案:

没有答案