输入一组React组件实例

时间:2019-10-11 08:04:51

标签: reactjs typescript typescript-typings

我有一个表组件,它接收一个字符串/数字数组作为prop,因此它需要一个rows类型的参数:

type Row = (string | number)[];

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

如何更改输入内容以使其正常工作?我尝试过:

type Row = (string | number | React.PureComponent | React.Component)[];

1 个答案:

答案 0 :(得分:17)

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

type Row = (string | number | React.ReactNode)[];

ReactNode非常灵活,因为它定义为:

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

ReactChild依次定义为:type ReactChild = ReactElement | ReactText;

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