簡體   English   中英

children.toArray() - TS2339:“ReactChild | 類型”上不存在屬性“鍵” 反應片段 | ReactPortal'... - 反應 Typescript

[英]children.toArray() - TS2339: Property 'key' does not exist on type 'ReactChild | ReactFragment | ReactPortal'... - React Typescript

我正在創建一個 TypeScript 組件/包裝器,在每個孩子之間添加一個分隔符:

import React, { FC, Children } from 'react'

const DividedChildren: FC = ({ children }) => {
  return (
    <div>
      {Children.toArray(children).map((node, index) => {
        if (index === 0) return node
        return (
          <Fragment key={node.key}> // TS Error, but code works fine
            <div className="divider" />
            {node}
          </Fragment>
        )
      })}
    </div>
  )

但是,當我嘗試將孩子的key移動到他的新容器中時,我收到了 TypeScript 錯誤:
TS2339: Property 'key' does not exist on type 'ReactChild | ReactFragment | ReactPortal'. Property 'key' does not exist on type 'string'.

如何安全地將每個項目的鍵移動到其新容器中?

我設法通過將node轉換為ReactElement類型來解決這個特定錯誤。

Children.toArray(children).map((node: React.ReactElement, index) => { //...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM