Мой компонент React использует FetchAPI и имеет два оператора возврата.
Нет, это не так. У него один:
render() {
let theList = this.state.map((item, id) => {
return (
<Card>A bunch of API Stuff </Card>
);
})
return ( // <========== here
<div className="search-wrap">
<Row>
{theList}
</Row>
</div>
)
}
Другой - return
в вашем map
обратном вызове, который никак не влияет на ваш render
метод.
Если вы хотите использовать условный оператор для отображения индикатора загрузки, вы сделаете это в вашем render
возвращении:
render() {
let { loading } = this.state; // *** Get the flag
let theList = this.state.map((item, id) => {
return (
<Card>A bunch of API Stuff </Card>
);
})
return ( // *** Use it in the below
<div className="search-wrap">
<Row>
{loading ? <p>Loading...</p> : theList}
</Row>
</div>
)
}
Вы также можете избежать ненужного вызова map
,но если вы знаете, что ваше состояние инициализируется пустым массивом, этот вызов безвреден. Но если вы хотите избавиться от этого:
render() {
let { loading } = this.state; // *** Get the flag
let theList = !loading && this.state.map((item, id) => {
return (
<Card>A bunch of API Stuff </Card>
);
})
return ( // *** Use it in the below
<div className="search-wrap">
<Row>
{loading ? <p>Loading...</p> : theList}
</Row>
</div>
)
}