TextArea 文本域

文本域用于多行输入。

何时使用

当用户需要多行输入内容时。

代码演示

基本使用

基本使用。

TextArea文本域 - 图1

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { TextArea, Row, Col } from 'choerodon-ui/pro';
  4. ReactDOM.render(
  5. <Row gutter={10}>
  6. <Col span={8}>
  7. <TextArea placeholder="Basic usage" />
  8. </Col>
  9. <Col span={8}>
  10. <TextArea placeholder="readOnly" readOnly />
  11. </Col>
  12. <Col span={8}>
  13. <TextArea placeholder="disabled" disabled />
  14. </Col>
  15. </Row>,
  16. document.getElementById('container'),
  17. );

受控输入框

受控输入框

TextArea文本域 - 图2

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { TextArea } from 'choerodon-ui/pro';
  4. class App extends React.Component {
  5. constructor(props) {
  6. super(props);
  7. this.state = {
  8. value: 'default',
  9. };
  10. }
  11. handleChange = (value, oldValue) => {
  12. console.log('[newValue]', value, '[oldValue]', oldValue);
  13. this.setState({
  14. value,
  15. });
  16. };
  17. handleInput = e => {
  18. console.log('[textarea]', e.target.value);
  19. };
  20. render() {
  21. return (
  22. <TextArea value={this.state.value} onChange={this.handleChange} onInput={this.handleInput} />
  23. );
  24. }
  25. }
  26. ReactDOM.render(<App />, document.getElementById('container'));

数据绑定

数据绑定

TextArea文本域 - 图3

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { TextArea, DataSet } from 'choerodon-ui/pro';
  4. function handleDataSetChange({ record, name, value, oldValue }) {
  5. console.log(
  6. '[dataset newValue]',
  7. value,
  8. '[oldValue]',
  9. oldValue,
  10. `[record.get('${name}')]`,
  11. record.get(name),
  12. );
  13. }
  14. class App extends React.Component {
  15. ds = new DataSet({
  16. autoCreate: true,
  17. fields: [
  18. {
  19. name: 'content',
  20. type: 'string',
  21. defaultValue: 'textarea',
  22. required: true,
  23. },
  24. ],
  25. events: {
  26. update: handleDataSetChange,
  27. },
  28. });

拖拽调整大小

拖拽调整大小

TextArea文本域 - 图4

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { TextArea, Row, Col } from 'choerodon-ui/pro';
  4. ReactDOM.render(
  5. <Row gutter={10}>
  6. <Col span={8}>
  7. <TextArea placeholder="resize both" resize="both" cols={40} />
  8. </Col>
  9. <Col span={8}>
  10. <TextArea placeholder="resize vertical" resize="vertical" cols={40} />
  11. </Col>
  12. <Col span={8}>
  13. <TextArea placeholder="resize horizontal" resize="horizontal" cols={40} />
  14. </Col>
  15. </Row>,
  16. document.getElementById('container')
  17. );

适应文本高度

autoSize 属性默认只有高度会自动变化。另外 autoSize 可以设定为一个对象,指定最大最小行列数。

TextArea文本域 - 图5

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { TextArea } from 'choerodon-ui/pro';
  4. class App extends React.Component {
  5. render() {
  6. return (
  7. <TextArea
  8. placeholder="适应文本高度"
  9. autoSize={{ minRows: 2, maxRows: 8 }}
  10. />
  11. );
  12. }
  13. }
  14. ReactDOM.render(<App />, document.getElementById('container'));

API

属性说明类型默认值
cols文本域宽number
rows文本域高number
resize是否能够拖拽调整大小,可选值:none | both | vertical | horizontalstringnone
autoSize自适应内容高度,可设置为 true| false 或对象:{ minRows: 2, maxRows: 6 }boolean| objectfalse

更多属性请参考 FormField