【发布时间】:2018-03-24 09:37:30
【问题描述】:
React 团队 announced 从 React 16 开始:
您现在可以从组件的渲染方法返回一个元素数组。
这适用于常规类组件的打字稿,但我无法让它适用于无状态功能组件。
如果您想自己复制,请参阅this repo。
代码:
import * as React from 'react';
// See this example working in a non-TS environment: https://codesandbox.io/s/ppl3wopo8j
class Hello extends React.Component {
render() {
return <div>
<Foo />
<Bar /> {/* Error: 'JSX element type 'Element[]' is not a constructor function for JSX elements. */}
</div>;
}
}
class Foo extends React.Component {
render() {
return [<div>foo</div>, <div>fooz</div>];
}
}
function Bar() {
// Cannot render an array from a SFC
return [<div>bar</div>, <div>baz</div>];
}
构建这个sniper会导致以下错误:
'JSX element type 'Element[]' is not a constructor function for JSX elements.
Property 'render' is missing in type 'Element[]'.'
如您所见,从常规类组件渲染数组是可行的,但在从无状态功能组件渲染数组时会失败。
我不确定问题出在我的代码/设置、DefinitelyTyped 反应类型还是打字稿本身。
【问题讨论】:
标签: reactjs typescript definitelytyped