Вам следует сохранить переменную в вашем штате, указав, завершено ли ваше обещание.Для этого вы можете либо await
свое обещание и установить свое состояние, либо использовать .then
и установить свое состояние в функции обратного вызова функции.
Минимальный код будет выглядеть следующим образом:
class MyComponent extends React.Component {
constructor(props) {
super(props)
this.state = {
show: false
}
}
componentDidMount = async () => {
try {
await new Promise((resolve, reject) => {
setTimeout(() => (Math.round(Math.random()) === 0 ? resolve(countries) : reject()), 100);
});
this.setState({ show: true })
} catch(err){
}
}
render = () => this.state.show ? <div>My content</div> : <div/>
}
Очевидно, что вы можете заменить созданное Обещание на экспортируемую вами переменную и заменить преобразованный компонент на любой другой.