이 구성 요소가 있습니다.
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>
);
}
}
입력 값이 비어있을 때 버튼을 비활성화하고 싶습니다. 그러나 위의 코드는 작동하지 않습니다. 그것은 말한다 :
add-item.component.js : 78 Uncaught TypeError : Cannot read property 'value'of undefined
가리키는 disabled={!this.input.value}
. 여기서 내가 뭘 잘못하고 있니? render
메서드가 실행될 때 아마도 ref가 아직 생성되지 않았다고 생각합니다 . 그렇다면 해결 방법은 무엇입니까?