如何将文本追加到React JS中创建的文本区域?

时间:2016-09-27 05:47:26

标签: javascript reactjs typescript textarea

我有以下代码来创建文本区域。

interface IReceiverProps {
    receivedMessage: string;
    topic: string;
}

export default class Receiver extends React.Component<IReceiverProps, {}> {

    render() {
        var textAreaStyle = {
            width: 1300,
            height: 450,
            border: '3px solid #cccccc',
            padding: '5px',
            fontFamily: 'Tahoma, sans-serif',
            overflow: 'auto',
            marginLeft: '10px'
        }
        return (
            <textarea style={textAreaStyle} value={this.props.receivedMessage}/>
        );
    }

}

此收到的消息由另一个组件传递。如何在此文本区域中将receivedMessage添加到另一个下面?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用名为textMessage的状态。

constructor(props) {
  super(props);
  this.state = {
    textMessage: props.receivedMessage
  };
}

在componentWillReceiveProps中,追加到textMessage。

componentWillReceiveProps(nextProps) {
  if (nextProps.receivedMessage !== this.props.receivedMessage) {
    this.setState({
      textMessage: `${this.state.textMessage}\n{nextProps.receivedMessage}`
    });
  }
}

绑定到textMessage。

<textarea style={textAreaStyle} value={this.state.textMessage} />