我正在研究ReactJs应用程序。在这里,我有Textarea
与state
<Textarea className="c-input" tabIndex="7" minRows={4}
ref="adMessage"
onKeyPress={ console.log('keypress textarea') }
onChange={ console.log('changed text area') }
placeholder=""
value={this.state.adDescription}
/>
在另一个控制器中,我有一些标签,点击它们,我可以像这样更新adDescription
状态
handelSetDescription = (label) => {
let message = '';
if (this.state.adDescription.length === 0){
message = this.state.adDescription + label;
} else if (this.state.adDescription.length > 0){
message = this.state.adDescription + ", " + label;
}
this.setState({
adDescription: message
});
};
但是我想手动向Textarea添加更多文本,但似乎我无法在那里添加任何文本。当我点击Textarea并输入内容时,它就什么都不做。
如何手动添加文字?几次搜索后没有得到任何直接答案。
感谢
Ariful
答案 0 :(得分:1)
根据您的业务逻辑尝试做这样的事情。
<Textarea className="c-input" tabIndex="7" minRows={4}
ref="adMessage"
onKeyPress={ console.log('keypress textarea') }
onChange={ this.someFunctionName }
placeholder=""
value={this.state.adDescription}
/&GT;
功能可以执行以下操作:
changeStateForDescription = (val) => {
this.setState({
adDescription: val
});
}
handelSetDescription = (label) => {
let message = '';
if (this.state.adDescription.length === 0){
message = this.state.adDescription + label;
} else if (this.state.adDescription.length > 0){
message = this.state.adDescription + ", " + label;
}
this.changeStateForDescription(message);
};
someFunctionName = (e) => {
this.changeStateForDescription(this.state.adDescription + e.target.value);
}