2017-10-06 122 views
0

現在我的Container看起來像這樣。但我不認爲這是最好的方式。ReactJS條件渲染組件與道具的最佳方式

renderAddForm() { 
 
    if (!this.props.isFetching) { 
 
    return <div>loading</div>; 
 
    } 
 
    return <AddForm {...this.props} />; 
 
} 
 

 
render() { 
 
    return (
 
    <Layout> 
 
     <PageHeader title="Ангилал нэмэх" button="Хадлгалах" href="#" /> 
 
     {this.renderAddForm()} 
 
    </Layout> 
 
); 
 
}

回答

3

你解決它的罰款。 另一種方式可以是內聯:

render() { 

    let { isFetching } = this.props 

    return (
    <Layout> 
     <PageHeader title="Ангилал нэмэх" button="Хадлгалах" href="#" /> 
     {isFetching ? <div>loading</div> : <AddForm {...this.props} />} 
    </Layout> 
); 
} 
+0

我認爲OP解決方案是完全正確的。我會建議反對內聯,因爲它可能會變得混亂,難以形象化。 – nbkhope

+0

在這種情況下,我不覺得內聯是混亂的 – Pietro