Первый запрос вернул мне два списка: list1, list2.
Так что мне нужно немедленно отрендерить list1. Но для list2 мне нужно проверить второй запрос, а затем отобразить его. Где лучше сделать это?
p.s. теперь я делаю это в componentDidMount в элементе list2. isChecking - установить true при завершении запроса и дать результат.
const Container = (props) => <div>
{props.list1.map(item => <Item {...item} />)}
{props.list2.map(item => <Item {...item} check = {true}/>)}
</div>;
class Item extends React.Component {
componentDidMount() {
if (check) {
this.props.checkRequest();
}
}
render() {
if (this.props.check && !this.props.isChecking) {
return <span />;
}
return <div>{item.name}</div>;
}
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вам не нужна логика проверки для list1, вы можете напрямую сопоставить ее, не используя для нее компонент Item, например:
const Container = (props) => <div>
{props.list1.map(item => <div>{item.name}</div>)} // <------- no Item component here
{props.list2.map(item => <Item {...item} check = {true}/>)}
</div>;
class Item extends React.Component {
componentDidMount() {
if (check) {
this.props.checkRequest();
}
}
render() {
if (this.props.check && !this.props.isChecking) {
return <span />;
}
return <div>{item.name}</div>;
}
}