antd中form表单使用textarea会报错,该如何解决?

发布于 2022-09-06 04:02:09 字数 1778 浏览 14 评论 0

先上代码

import React from 'react';
import { Form, Input, Button, DatePicker, Select } from 'antd';
const FormItem = Form.Item;
const { TextArea } = Input;

class InfoAdd extends React.Component {
  constructor(props) {
    super(props);
  }

  handleSubmit(){
    console.log('handleSubmit');
    }
    
  render() {
        const { getFieldDecorator } = this.props.form;
        

    return (
            <Form onSubmit={this.handleSubmit}>
                <FormItem label="消息内容">
                    {getFieldDecorator('INFO_CONTENT')(<TextArea />)}
                </FormItem>                
            </Form>
    )
  }
}

export default Form.create()(InfoAdd);

就会报错

Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components). Check the render method of `InfoAdd`.

Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. Check the render method of `InfoAdd`.

将form中的TextArea改为Input替代是可以得,说明代码没错误,
网上搜索错误信息,说是引入不正确,但是官网里对TextArea引入就是

import { Input } from 'antd';
const { TextArea } = Input;

ReactDOM.render(
  <div>
    <TextArea placeholder="Autosize height based on content lines" autosize />
    <div style={{ margin: '24px 0' }} />
    <TextArea placeholder="Autosize height with minimum and maximum number of lines" autosize={{ minRows: 2, maxRows: 6 }} />
  </div>
, mountNode);

不过不是在form中,所以想问问各位 有没有什么好的解决方法? 或者是我哪里写错了?

或者在form中,要输入大量的文本,用哪个控件代替?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过期情话 2022-09-13 04:02:09

antd的textarea可以使用input来代替,需要加上type=‘textarea’,这样之后,所有的事件与inputt的都一致了。可以看看官方文档,写的其实很详细。
代码如下:

              <Input
                type='textarea'
                placeholder='textarea内容'
                autosize={{ minRows: 12 }}
                onChange={this.textareaChange}
              />
琉璃繁缕 2022-09-13 04:02:09

我用<TextArea></TextArea>也会报你这个错,用<Input.TextArea></Input.TextArea>就不报错了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文