我有一个非常简单的功能组件,如下所示:
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]
如何正确键入?
您可以使用ReactChildren
和ReactChield
:
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[];
}
为了使用
但是,它目前被定义为返回
React.ReactNode
的函数,这是一个更广泛的类型。正如 React 类型所说:
type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;
通过将返回值包装到 React 片段 (
const aux: React.FC<AuxProps> = props =>
<>{props.children}</>;
只是<代码>孩子:反应。反应节点。
我有一个非常简单的功能组件,如下所示: 和另一个组成部分: 我不断发现以下错误: [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”属性。
我有三种模式:有许多有许多。当我删除一个用户时,我希望自动删除他所有相关的帖子以及与这些帖子相关的评论。为了实现这一点,我在和模型中有以下代码: 当我删除一个用户时,他的所有帖子都会被删除,但是评论会被保留。为什么会发生这种情况?
我在为我们的反应原生项目写组件 我从道具类型中得到这个错误 “警告:失败的道具类型:提供给