【发布时间】:2018-06-01 17:03:54
【问题描述】:
"Dependencies":{
"typescript": "2.6.2"
"@types/react": "15.0.35",
"react": "15.6.1",
}
我正在尝试制作一个“哑组件”,但 typescript 不接受我的函数定义。
(TS) JSX 元素类型 '() => Element' 不是构造函数 对于 JSX 元素。类型'() => 中缺少属性'render' 元素'。
代码不接受。
const Layout = (props: Invoice) => {
const noResult = () => <p><em>Nothing found.</em></p>;
const showResult = () => {
return (
<div className="col-sm-10" >
<div id="screenshotPlaceholder">
<div className="invoice-container">
<Header {...props} />
<div className="invoice-content">
<Content {...props } />
</div>
</div>
</div>
</div>)
};
if (props === null)
return noResult;
return showResult;
}
如果我将最后两个返回值更改为如下图所示,那么它会起作用,但它不太干净。
if (props === null)
return <div>{noResult}</div>;
return <div>{showResult}</div>;
它似乎需要一个带有 JSX 内联的 return 语句才能被识别为 JSX 组件?我的组件是否太“智能”而无法使用“哑组件”语法制作?我认为如果它起作用了,这将相当优雅。
【问题讨论】:
标签: reactjs typescript