首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >类型记录没有重载与此调用react.cloneElement匹配

类型记录没有重载与此调用react.cloneElement匹配
EN

Stack Overflow用户
提问于 2022-07-20 09:55:42
回答 1查看 568关注 0票数 2

我在我的React.cloneElement第一个参数"childred“上的反应代码中有一个类型记录错误,我不明白。

我认为在index.d.ts for cloneElement中定义的类型不适用于这种情况,但是我对类型记录非常陌生,我如何才能修复它呢?index.d.ts中的"P“、"T”代表什么?

MessageType.tsx:

代码语言:javascript
复制
class MessageType extends React.Component<any, any> {

 [.....]

const { children, noFloating } = this.props ;

  [.....]


{messageType
              ? React.cloneElement(children, {
                  ...(noFloating ? {} : { floatingMessage }),
                  messageType,
                  message: `Example ${messageType} message`,
                })
              : children}

在上面这段代码中,“子”是红色的。

错误:

代码语言:javascript
复制
No overload matches this call.
  The last overload gave the following error.
    Argument of type 'ReactNode' is not assignable to parameter of type 'FunctionComponentElement<P>'.
      Type 'undefined' is not assignable to type 'FunctionComponentElement<P>'.ts(2769)
index.d.ts(328, 14): The last overload is declared here.

index.d.ts:

代码语言:javascript
复制
/ Custom components
function cloneElement<P>(
    element: FunctionComponentElement<P>,
    props?: Partial<P> & Attributes,
    ...children: ReactNode[]): FunctionComponentElement<P>;
function cloneElement<P, T extends Component<P, ComponentState>>(
    element: CElement<P, T>,
    props?: Partial<P> & ClassAttributes<T>,
    ...children: ReactNode[]): CElement<P, T>;
function cloneElement<P>(
    element: ReactElement<P>,
    props?: Partial<P> & Attributes,
    ...children: ReactNode[]): ReactElement<P>;
EN

回答 1

Stack Overflow用户

发布于 2022-07-20 13:53:36

已解决的声明:

代码语言:javascript
复制
children as React.ReactElement<any> 

但我认为有一个更正确的解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73049515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档