react学习之路:TS报错-Its return type ‘Element[]‘ is not a valid JSX element

React报错之 Its return type ‘Element[]’ is not a valid JSX element

产生的原因:

1,函数组件返回的是Element数组,不是JSX元素。
2,如果组件返回的是JSX和null以外的值会提示类似’xxx’ cannot be used as a JSX component. Its return type ‘void’ is not a valid JSX element.的错误。

错误代码示例:

1,在这里插入图片描述
在这里插入图片描述
因为函数组件返回的是一个Element[]类型的元素,不是一个JSX元素。
解决这个问题可以用React的fragment或者用一个div包裹元素.

用div活空标签包裹

const ColorItem = () => {
    const list: string[] = ['#1677FF', '#5A54F9', '#9E339F', '#ED4192', '#E0282E', '#F4801A', '#F2BD27', '#00B96B']
    return (
      <>
        {list.map(item => {
          return <div key={item} className="theme_color_item" style={{ backgroundColor: item }}></div>
        })}
      </>
    )
  }

这样函数返回的就是一个JSX元素,就不会有上面的错误了。

用React的Fragment语法

const ColorItem = () => {
    const list: string[] = ['#1677FF', '#5A54F9', '#9E339F', '#ED4192', '#E0282E', '#F4801A', '#F2BD27', '#00B96B']
    return (
      <React.Fragment>
        {list.map(item => {
          return <div key={item} className="theme_color_item" style={{ backgroundColor: item }}></div>
        })}
      </React.Fragment>
    )
  }

2,如果函数组件没有返回值,或者返回的JSX元素或者null,TypeScript会提示 ”‘xxx’ cannot be used as a JSX component. Its return type ‘void’ is not a valid JSX element.“
确保函数组件返回单个的JSX元素或者null就行了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值