新しいテキストを入力できないTextAreaオブジェクトがあります。最初はコンストラクタなしでこれを試しましたが、this
にバインドされていなかったので、私がonメソッドを呼び出そうとするときに領域を取得します。 onChangeメソッドをバインドするコンストラクタを追加すると、テキストを入力できなくなります。Reactjs TextAreaオブジェクトは可変ではなく読み込み専用です
class TextAreaCounter extends React.Component{
constructor(props) {
super(props);
this._textChange = this._textChange.bind(this);
}
getInitialState() {
return {
text: this.props.text,
};
}
_textChange(ev) {
this.setState({
text: ev.target.value,
});
}
render() {
return React.DOM.div(null,
React.DOM.textarea({
value: this.props.text,
onChange: this._textChange,
}),
React.DOM.h3(null, this.props.text.length)
);
}
}
TextAreaCounter.PropTypes = {
text: React.PropTypes.string,
}
TextAreaCounter.defaultProps = {
text: '',
}
ReactDOM.render(
React.createElement(TextAreaCounter, {
text: "billy",
}),
document.getElementById("app")
);
修正してください!コンストラクタに状態を設定する必要があります。 – eclipse