Итак, у меня есть Component, который отображает список вложенных компонентов Cri, и моя цель - сделать отображение некоторого заполнителя на экране до тех пор, пока список компонентов Cri не будет полностью загружен на экран.
Есть предложения?
class Comp extends Component {
constructor(props) {
super(props)
this.state = {
isLoaded: true
}
}
_func = () => {
const lis = [];
const { att, cri, media, res, st } = this.props;
cri &&
cri.map((row, i) => {
var state = !row.available ? 'locked' : ''
if (att.inProgress === false && att.itemId === row.cr && st) {
var show = true
state = result || state
}
lis.push(
<Cri // my list of the Components Cri
{...row}
action = {this._atte(row.cri, row.available)}
key = {i}
mediaType = {medpe}
showOutcome = {showe}
state = {state}
/>
)
})
return lis
}
render() {
const { isLoaded } = this.state;
return (
<div className = "main-container">
<div className = "sub-list">
<div>
{this._buildCrimesList()}
</div>
</div>
</div>
)
}
}



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


Вы могли сделать:
render() {
const { isLoaded } = this.state;
if (!isLoaded) {
return <div>Loading..</div>;
return (
<div className = "main-container">
<div className = "sub-list">
<div>
{this._buildCrimesList()}
</div>
</div>
</div>
)
}
И что это мне дает? {this._buildCrimesList()} все равно не загрузит ресурсы ....
Какие? Я не понимаю, что вы говорите.
Мы не можем использовать метод setState внутри render() - потому что React выйдет из строя и предоставит нам цикл состояния загрузки (. Он также сказал в отключенной документации React ...
Да .. Я нигде не использую setState?
Итак, а как мы можем изменить состояние const { isLoaded } = this.state; в случае, если наша функция начинает работать только из метода render()? Это у меня вопрос, а как связать момент окончания работы функции и изменение статуса isLoaded внутри this.state?
const { isLoaded } = this.state; не меняет состояние. Я думаю, вам следует сначала ознакомиться с некоторыми основами React, это может помочь вам понять этот код. Я думаю, что вы просите поместить _buildCrimesList() в componentDidMount(), но вы не опубликовали весь свой код, поэтому я не знаю.
Используйте синтаксис
{isLoaded ? <YourComponent /> : null}.