输入一组React组件实例

0 typescript reactjs typescript-typings

我有一个表组件,它接收一个由字符串/数字数组组成的数组作为道具,因此它需要一个rows像这样输入的参数:

type Row = (string | number)[];
Run Code Online (Sandbox Code Playgroud)

但是,有些列需要显示React组件,而不是纯文本/数字。

如何更改输入使其起作用?我尝试了这个:

type Row = (string | number | React.PureComponent | React.Component)[];
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 17

这里有许多可行的选择,根据您的使用方式,一些选择会比其他选择更好。我一直在React.ReactNode指定孩子,但是您也可以在用例中使用它。

type Row = (string | number | React.ReactNode)[];
Run Code Online (Sandbox Code Playgroud)

ReactNode 由于定义为:因此非常灵活

type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;
Run Code Online (Sandbox Code Playgroud)

并且ReactChild反过来,被定义为:type ReactChild = ReactElement | ReactText;

如果您想要更严格,不太灵活,请尝试ReactElement