在 React 中正确输入childrenprop 一开始可能会遇到一些困难。如果您尝试将它们输入为特定的 JSX 类型,您可能会遇到渲染子组件的问题。选择的悖论也存在问题,因为有多个可用选项来键入 children 道具。这可能会导致决策疲劳。
在本文中,我将根据经验分享我推荐的解决方案。如何在 Windows 7 中回滚驱动程序为了完整起见,我还将分享一些其他可能相关的方法。
跳跃前进:
JSX 中的孩子
支持的子类型
使用PropsWithChildren类型
显式使用ReactNode类型
使用FunctionComponent(或FC)类型
使用Component类组件的类型
让我们开始吧。
JSX 中的孩子
当你写一个带有开始和结束标签的 JSX 表达式时,鼠标滚动不起作用?这是在 Chrome、Firefox 上滚动的方法它们之间传递的内容被称为它们的“孩子”。
孩子在 JSX 表达式的开始和结束标记之间传递
考虑以下人为的示例:
<Border> Hey, I represent the JSX children! </Border>
在此示例中,什么是 Windows 主题以及如何更改它?文字字符串指的是在 中呈现的子项。Hey, I represent the JSX children!Border
相反,为了访问 JSX 结束标签和开始标签之间传递的内容,如何刷新或重置 Windows 8(及其含义)React 在一个特殊的 prop 中传递这些内容:props.children
例如,Border可以children按如下方式接收 prop:
const Border = ({children}) => {
return <div style={{border: "1px solid red"}}>
{children}
</div>
}
Border接受childrenprop,然后渲染带有边框样式children的.div1px solid red
这是 prop 的基本用法children,StrokeIt:在Windows中获取鼠标手势,通过绘图命令即接收和操作在 JSX 表达式的开始和结束标记内传递的内容。
支持的子类型
严格来说,有一些受支持的内容类型可以放在 JSX 表达式的开始和结束标记中。什么是MD5校验和以及如何验证它以下是一些最常用的:
字符串
文字字符串是有效的子类型,如下所示:
<YourComponent> This is a valid child string </YourComponent />
请注意,在 中YourComponent,将只是字符串。在 MS Outlook 中为传入邮件创建文件夹规则 – 指导技术props.childrenThis is a valid child string
建兴兴业
您同样可以将其他 JSX 元素作为有效子元素传递。什么是 Windows 7 中的电源诊断报告以及如何使用它?这在组合不同的嵌套组件时通常很有用。下面是一个例子:
<Wrapper>
<YourFirstComponent />
<YourSecondComponent />
</Wrapper>
混合子类型也是完全可以接受的,如下图:
<Wrapper>
I am a valid string child
<YourFirstComponent />
<YourSecondComponent />
</Wrapper>
JavaScript 表达式
表达式是同样有效的子类型,如下所示:
<YourFirstComponent> {myScopedVariableReference} </YourFirstComponent>
请记住,中的表达式JSX写在大括号中。
功能
函数是同样有效的子类型,如下所示:
<YourFirstComponent>
{() => <div>{myScopedVariableReference}</div>}
</YourFirstComponent>
如您所见,childrenprop 可以用相当广泛的数据类型来表示!3 个可帮助您了解如何使用 Windows 8 的应用程序您的第一个倾向可能是手动输入这些内容,如下所示:
type Props = {
children: string | JSX.Element | JSX.Element[] | () => JSX.Element
}
const YourComponent = ({children} : Props) => {
return children
}
这似乎是个好主意,但它并不能完全代表children道具。如何使用 Posterous 快速开始写博客片段、门户和忽略的渲染值(例如undefined、null、true或 )怎么样false?
完整的表示可能看起来像这样:
type ReactText = string | number;
type ReactChild = ReactElement | ReactText;
interface ReactNodeArray extends Array<ReactNode> {}
type ReactFragment = {} | ReactNodeArray;
type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;
type Props = {
children: ReactNode
}
// source: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/d076add9f29db350a19bd94c37b197729cc02f87/types/react/index.d.ts
请参阅ReactPortal和ReactElement的扩展类型。Excel 数据透视表报告:内容、方法和一些提示它们看起来复杂吗?他们很有可能这样做。
我想说的是,在实践中,您不想children手动输入 prop。相反,我建议使用下面讨论的官方支持的类型。
使用PropsWithChildren类型
该类型采用您的组件 prop 并返回一个具有适当类型的 prop 的联合类型。如何在 Microsoft Excel 中高效使用快速填充您不需要额外的工作。React.PropsWithChildrenchildren
实际上,这是类型的定义PropsWithChildren:
type PropsWithChildren<P> = P & { children?: ReactNode };
类型如何propsWithChildren工作
Foo假设你有一个带有 props 的组件FooProps:
type FooProps = {
name: 'foo'
}
export const Foo = (props: FooProps) => {
return null
}
您可以继续介绍children道具如下:
import { PropsWithChildren } from 'react'
type FooProps = {
name: 'foo'
}
export const Foo = (props: PropsWithChildren<FooProps>) => {
return props.children
}
当你传递PropsWithChildren给你的组件 prop时FooProps,如何向 VLC 播放器添加扩展你会得到children内部类型的 prop。
在大多数情况下,这是输入childrenprop 的推荐方法,如何在 Windows 10 上修复高 Ping因为它需要更少的样板,并且childrenprop 是隐式输入的。
显式使用ReactNode类型
在您必须显式键入 prop 的情况下children,如何修复 Windows 10 中的黑色文件夹背景问题您可以继续使用ReactNode类型。
记住类型的定义PropsWithChildren:
type PropsWithChildren<P> = P & { children?: ReactNode };
propsWithChildren 类型利用了 reactNode 类型
除了依赖PropsWithChildren,如何在 GIMP 中为文本添加阴影你还可以children直接输入 prop:
import { ReactNode } from 'react'
type FooProps = {
name: 'foo'
// look here
children: ReactNode
}
export const Foo = (props: FooProps) => {
return props.children
}
使用FunctionComponent(或FC)类型
通用接口FunctionComponent也可用于适当地键入childrenprop。如何修复 Windows Media Player 添加到媒体库不起作用在内部,此接口依赖于PropsWithChildren.
以下是您将如何使用它:
import { FunctionComponent } from 'react'
type FooProps = {
name: 'foo'
}
export const Foo: FunctionComponent<FooProps> = (props) => {
return props.children
}
请注意,该类型是easeFC的别名。FunctionComponent它们的用法类似,如下图:
import { FC } from 'react'
type FooProps = {
name: 'foo'
}
export const Foo: FC<FooProps> = (props) => {
return props.children
}
使用Component类组件的类型
大多数现代 React 代码库不再使用类组件,如何在 Windows 11 上启用和使用休眠模式特定用例除外。
如果您发现自己需要children在类组件中键入 prop,请利用该Componentprop,如下所示:
import { Component } from 'react'
type FooProps = {
name: 'foo'
}
class Foo extends Component<FooProps> {
render() {
return this.props.children
}
}
类似于FunctionComponent接口及其FC别名,Component类型自动包含childrenprop。
结论
在可能的情况下,使用PropsWithChildren类型,但也不要害怕children直接输入 prop,无论是在类中还是在功能组件中。