我有这个组成部分:
import React from 'react';
export default class AddItem extends React.Component {
add() {
this.props.onButtonClick(this.input.value);
this.input.value = '';
}
render() {
return (
<div className="add-item">
<input type="text" className="add-item__input" ref={(input) => this.input = input} placeholder={this.props.placeholder} />
<button disabled={!this.input.value} className="add-item__button" onClick={this.add.bind(this)}>Add</button>
</div>
);
}
}
我希望当输入值为空时按钮被禁用。但是上面的代码不起作用。它说:
Js: 78 Uncatch TypeError: 无法读取未定义的属性“ value”
指向 disabled={!this.input.value}
。我到底做错了什么?我猜测,在执行 render
方法时,可能还没有创建 ref。如果是这样,那么解决办法是什么?