当前位置: 首页 > 知识库问答 >
问题:

“儿童”道具的类型是什么?

安坚诚
2023-03-14

我有一个非常简单的功能组件,如下所示:

import * as React from 'react';

export interface AuxProps  { 
    children: React.ReactNode
 }


const aux = (props: AuxProps) => props.children;

export default aux;

还有一个组件:

import * as React from "react";

export interface LayoutProps  { 
   children: React.ReactNode
}

const layout = (props: LayoutProps) => (
    <Aux>
        <div>Toolbar, SideDrawer, Backdrop</div>
        <main>
            {props.children}
        </main>
    <Aux/>
);

export default layout;

我不断收到以下错误:

[ts]JSX元素类型“ReactNode”不是JSX元素的构造函数。类型“未定义”不能分配给类型“元素类”。[2605]

如何正确键入?

共有3个答案

夔高寒
2023-03-14

您可以使用ReactChildrenReactChield

import React, { ReactChildren, ReactChild } from 'react';
 
interface AuxProps {
  children: ReactChild | ReactChildren;
}

const Aux = ({ children }: AuxProps) => (<div>{children}</div>);

export default Aux;

如果您需要传递元素的平面数组:

interface AuxProps {
  children: ReactChild | ReactChild[] | ReactChildren | ReactChildren[];
}
苏志
2023-03-14

为了使用

但是,它目前被定义为返回 React.ReactNode函数,这是一个更广泛的类型。正如 React 类型所说:

type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;

通过将返回值包装到 React 片段 (

const aux: React.FC<AuxProps> = props =>
  <>{props.children}</>;

夏侯渊
2023-03-14

只是<代码>孩子:反应。反应节点。

 类似资料:
  • 我有一个非常简单的功能组件,如下所示: 和另一个组成部分: 我不断发现以下错误: [ts]JSX元素类型“ReactNode”不是JSX元素的构造函数。类型“undefined”不可分配给类型“ElementClass”。[2605] 如何正确地键入此内容?

  • 我对gitlab ci子管道有问题。需要在具有多个应用程序的repo中的每次提交后自动触发ci管道。需要配置以检测哪些文件夹/文件被修改,以便知道要触发哪个应用程序管道 结构示例 Main“.gitlab ci.yml”是: appA1".gitlab-ci.yml"是: appA2“.gitlab ci.yml”是: 这种配置的目的是,例如,当我在应用**中更改文件时,管道会检测到更改并生成应用

  • 昨天我在我的项目中添加了,现在当我离开并回到导航中的元素时,它会重新加载Sky,我得到 警告:儿童(…):遇到两个具有相同密钥的子项,。子密钥必须是唯一的;当两个子项共享密钥时,将只使用第一个子项。 (上面使用的数字50只是一个例子,它每次抛出这个错误~40次,都是不同的id) 这个问题似乎源于我的文件: 因为每次我进入另一个屏幕时,这个组件都会卸载,然后在我回来时重新安装。 当完成时,创建了一组

  • 我试图在React中构建一个组件,它从JSON源获取信息,并使用其中的一些信息创建可以传递到其他单独组件的状态。虽然我还没有将状态传递到单独的组件中,但我已经能够使用JSON中的信息更新状态。然而,当我加载我的页面时,我会得到一个错误代码,我想在继续我的项目之前对其进行整理,以防在代码中留下错误会产生意外的副作用。错误代码如下所示: js:1警告:列表中的每个子级都应该有一个唯一的“key”属性。

  • 我有三种模式:有许多有许多。当我删除一个用户时,我希望自动删除他所有相关的帖子以及与这些帖子相关的评论。为了实现这一点,我在和模型中有以下代码: 当我删除一个用户时,他的所有帖子都会被删除,但是评论会被保留。为什么会发生这种情况?

  • 我在为我们的反应原生项目写组件 我从道具类型中得到这个错误 “警告:失败的道具类型:提供给