我想使用新的 react 16 功能返回数组元素,render
但我收到typescript错误Property 'type' is missing in type 'Element[]'
const Elements: StatelessComponent<{}> = () => ([
<div key="a"></div>,
<div key="b"></div>
]);
我错过了什么?使用@types/react 16.0.10和typescript 2.5.3
我想使用新的 react 16 功能返回数组元素,render
但我收到typescript错误Property 'type' is missing in type 'Element[]'
const Elements: StatelessComponent<{}> = () => ([
<div key="a"></div>,
<div key="b"></div>
]);
我错过了什么?使用@types/react 16.0.10和typescript 2.5.3
我检查了最新的类型,但他们忘记在无状态组件界面中添加新定义。我已经提出了这个问题,它应该很快得到解决。
从类组件返回一个数组是有效的,所以如果你现在真的需要它,你可以将你的功能组件转换为类组件。
class Elements extends React.Component<{}> {
render() {
return [
<div key="a"></div>,
<div key="b"></div>
]
}
}
或使用module扩充临时扩展 React 类型。只需将以下代码放在您的 .ts 文件之一中,typescript将自动检测定义中的更改。
declare module "react" {
interface StatelessComponent<P = {}> {
(props: P & { children?: ReactNode }, context?: any): ReactElement<any>[] | ReactElement<any> | null;
propTypes?: ValidationMap<P>;
contextTypes?: ValidationMap<any>;
defaultProps?: Partial<P>;
displayName?: string;
}
}
或者使用React 片段:
render() {
return
<>
<div key="a"></div>,
<div key="b"></div>
</>
}