新しいreact16機能を使用してrender
の配列要素を返したいのですが、TypeScriptエラーが発生しますProperty 'type' is missing in type 'Element[]'
const Elements: StatelessComponent<{}> = () => ([
<div key="a"></div>,
<div key="b"></div>
]);
何が足りないのですか? @ types/react 16.0.1およびTypeScript 2.5.を使用する
最新の入力を確認しましたが、ステートレスコンポーネントインターフェイスに新しい定義を追加するのを忘れていました。私は問題を提起しました、そしてそれはすぐに修正されるはずです。
クラスコンポーネントから配列を返すことは機能するので、今本当に必要な場合は、機能コンポーネントをクラスコンポーネントに変換できます。
class Elements extends React.Component<{}> {
render() {
return [
<div key="a"></div>,
<div key="b"></div>
]
}
}
または、モジュール拡張を使用してReact入力を一時的に拡張します。次のコードを.tsファイルの1つに配置するだけで、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>
</>
}