У меня есть следующая функция внутри компонента Stencil, которая повторяется до тех пор, пока не будет построено меню.
Когда я оборачиваю функцию в Promise, в компоненте Stencil появляется ошибка:
renderMenu(obj, type, mobile) {
let thisNested = this;
return new Promise(function () {
function checkMobile() {
if (mobile) {
return 'harmoni-navigation--' + type + '' + ' ' + 'harmoni-navigation--mobile';
} else {
return 'harmoni-navigation--' + type + '';
}
}
return <div class={checkMobile()}>
<ul>
{
Object.values(obj).map((object) => {
return <li
class={object['harmoniChildren']
/** Check if menu has any children. */
? 'harmoni-navigation__item--' + type + '' + ' ' + 'harmoni-navigation__item--has-child'
: 'harmoni-navigation__item--' + type + ''}>
<a href={object['url']}>
{object['title']}
</a>
{object['harmoniChildren'] && !mobile &&
thisNested.renderMenu(object['harmoniChildren'], 'child', false)}
{object['harmoniChildren'] && mobile &&
thisNested.renderMenu(object['harmoniChildren'], 'child', true)}
</li>
})}
</ul>
</div>
})
}
Указана ошибка c по трафарету JS: vNode, переданный как дочерний, имеет непредвиденный тип. Убедитесь, что он использует правильную функцию h (). Пустые объекты также могут быть причиной, ищите комментарии JSX, которые стали объектами.
Однако я думаю, что проблема лежит где-то в моем коде, так как я никогда раньше не использовал Promises.
Надеюсь, что кто-то может помочь!
Спасибо!