【发布时间】:2018-09-12 00:32:48
【问题描述】:
class Wrapper extends React.Component {
content() {
if (this.props.isLoading) {
return (
<Layout>
<Loader />
</Layout>
);
} else if (this.props.isError) {
return (
<Layout>
<Error errorMsg={this.props.error} />
</Layout>
);
} else {
return (
<Layout>
{this.props.isSuccess ? <h1>success</h1> : <h1>some failure</h1>}
</Layout>
);
}
}
render() {
return this.content();
}
}
export default Wrapper;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
我有上面的代码,这里我在每个条件下都使用布局,
实际的<Layout> 组件真的很重,所以我只想使用一次布局并尝试重写代码,如下面的代码。
但它除了布局之外什么都不渲染。
class Wrapper extends React.Component {
content() {
return (
<Layout>
{(()=>{
if (this.props.isLoading) {
<Loader />
}else if(this.props.isError){
<Error errorMsg={this.props.error} />
}else if(this.props.isSuccess){
<h1>success</h1>
}
})()}
</Layout>
);
}
render() {
return this.content();
}
}
export default Wrapper;
【问题讨论】:
标签: javascript reactjs ecmascript-6 jsx