React Textarea与州无法更新

时间:2018-06-11 09:59:35

标签: javascript reactjs react-redux react-component

我正在研究ReactJs应用程序。在这里,我有Textareastate

相关联
<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并输入内容时,它就什么都不做。

enter image description here

如何手动添加文字?几次搜索后没有得到任何直接答案。

感谢
Ariful

1 个答案:

答案 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);
}