Uncaught TypeError: Cannot read property ‘isSelectOptGroup‘ of undefined 关于渲染select出现的问题

最近在用antd自动生成表单时,需要生成一个select,具体效果就是根据下面的这个数据的匹配到的key来生成对应的value具体的核心代码如下:

const formItems = result.map((item, index) => (
      <Col span={24 / colSpan} key={index}>
        <Form.Item label={item.name}>
          {getFieldDecorator(item.key, {
            initialValue: item.value.toString(),
            rules: [
              {
                required: true,
                message: '配置信息不能为空',
              },
              {
                pattern: item.regular,
                message: item.message,
              },
            ],
          })(
            this.test(item.key)
          )}
        </Form.Item>
      </Col>
    ));

 test函数具体实现,这里是通过find匹配到相同的key就返回Select

  test = key => {
    const foundItem = test.find(item => item.key === key);
    if (foundItem) {
      return foundItem.value;
    } else {
      return <Input />;
    }
  };

 test数据

const test=[{key:'a',value:(<Select> </Select>)},{key:'b',value:(<Select > </Select>)}]

结果渲染到页面的时候直接就报错了:这个错误的大概原因就是:该组件的子元素格式不正确或者包含了无效的内容

我这里的错误是由于Select组件中间多了一个空格,导致它把这个空格当作Option来处理了,最后导致很逆天的错误,最后是使用了ctrl+s格式化了代码,让两个Select在不同行,成功渲染。但是如果Select在同一行并且中间是空格的话,就会出现问题

但是如果这样写换行书写,好像无论哪有空格都可以渲染,(具体区别也不清楚)

const test1 = [
  { 
    key: 'a', 
    value: <Select> 

     </Select> },

];

总结:为了避免这种错,每次写代码使用ctrl+s格式化代码感觉是一个很好的习惯,只能说自己代码还是不够规范,导致出了这种错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值