返回在打字稿中反应16个数组元素

Dav*_*ess 9 javascript jsx typescript reactjs

我想使用新的react 16功能返回我的数组元素,render但我得到的是打字稿错误Property 'type' is missing in type 'Element[]'

const Elements: StatelessComponent<{}> = () => ([
  <div key="a"></div>,
  <div key="b"></div>
]);
Run Code Online (Sandbox Code Playgroud)

我错过了什么?使用@ types/react 16.0.10typescript 2.5.3

nib*_*iba 7

我检查了最新的打字,他们忘了在无状态组件界面中添加新定义.我提出了这个问题,应尽快解决.

从类组件返回一个数组是有效的,如果你现在真的需要它,你可以将你的功能组件转换为类组件.

class Elements extends React.Component<{}> {

  render() {
    return [
       <div key="a"></div>,
       <div key="b"></div>
    ]

  }
}
Run Code Online (Sandbox Code Playgroud)

或者使用模块扩充暂时扩展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;
  }
}
Run Code Online (Sandbox Code Playgroud)


Nik*_*iki 6

或者使用React 片段

render() {
    return 
       <>
        <div key="a"></div>,
        <div key="b"></div>
       </>
}
Run Code Online (Sandbox Code Playgroud)