无法访问已定义的长度属性

时间:2018-03-30 10:06:35

标签: reactjs

我将动态类名设置为input参数。我无法检查state参数的长度。以下是我的input元素

<div className={styles1.col75}>
  <input className={this.errorClass(this.state.errors["name"])} type="text" id="name" name="name" onChange={this.updateParam} value={this.state.name} placeholder="Your full name.."/>
  <span style={{color: "red"}}>{this.state.errors["name"]}</span>
</div>

以下是errorClass函数的定义

errorClass(error) {
    alert(error);
    return(error.length === 0 ? '' : 'has-error');
  }

但我收到此错误:无法读取未定义的属性length

1 个答案:

答案 0 :(得分:0)

我猜,可能是组件的负载,你没有任何错误&#39;因此,当调用此errorClass()时,它是未定义的。由于它未定义,您无法访问它的长度。

我建议您检查一下是否有错误&#39;首先,并试图找出长度。您可以更改下面的条件。

return(error && error.length > 0 ? 'has-error' : '');