Я пытаюсь заполнить список меню из своей базы данных PouchDB, но я не могу ничего вернуть из обещания, которое я вызываю после вызова get on the db.
Вот мой код:
<MenuList>
{this.populateSavedClues()}
</MenuList>
.
.
.
populateSavedClues() {
var db = this.db;
db.get('roomClues').then(function (doc) {
if (doc.clues == null || doc.clues == array()) {
return <MenuItem onClick={() => this.handleClose()} align='start' size='small' >You have no saved clues for this room</MenuItem>;
}
else {
return doc.clues.map((clue) => <MenuItem onClick={() => this.selectClue(clue)} align='start' size='small' >{clue}</MenuItem>);
}
}).catch(function (err) {
if(err.name=="not_found") {
return <MenuItem onClick={() => this.handleClose()} align='start' size='small' >You have no saved clues for this room</MenuItem>;
}
});
}
Сейчас я специально проверяю условие улова.Я точно знаю, что это попадание в меню, не найденное в моих тестах, и попадание в оператор return, но мое меню не получает пунктов и все еще пусто.Я протестировал вне обещаний и просто заставил эту функцию возвращать пункт меню без какой-либо другой логики, и это тоже работает, так что это что-то о попытке вернуться в рамках обещания улова, и я в своем уме, пытаясь выяснить, почему это возвращениене проходит весь путь до вызова MenuList.Что мне нужно сделать, чтобы вернуть пункт меню?