Я создаю это приложение с формой, в которой вы вводите поля в качестве поставщиков, ключевых слов и количества, и, нажимая «поиск», он открывает модальное окно с результатами различных ajax вызовов. работает нормально, но когда дело доходит до отображения результатов в модальном окне, ничего не отображается. Это код для моего модального окна.
<Modal
size="lg"
show={lgShow}
//onShow={ (() => loadHtml(html)) }
//onAfterOpen={ (() => onAfterOpen(html)) }
onHide={ (() => onHide(lgShow)) }
aria-labelledby="example-modal-sizes-title-lg"
className={`fade modal ${client}-results`}
>
<Modal.Header closeButton>
<Modal.Title id="example-modal-sizes-title-lg">
Your products
</Modal.Title>
</Modal.Header>
<Modal.Body>
{
Object.keys(ls).map( key => {
ls[key] !== null ?
switchProvs(key) :
''
} )
}
</Modal.Body>
</Modal>
«ls» - это объект, который собирает значения localStorage, которые меняются каждый раз, когда я ищу продукты каждого поставщика, в результате получается что-то вроде этого:
const ls = {
provider1: localStorage.getItem('provider1'),
provider2: localStorage.getItem('provider2'),
provider3: localStorage.getItem('provider3')
}
Это моя функция switchProvs:
const switchProvs = ( obj, key ) => {
switch(key){
case 'provider1':
JSON.parse(obj[key]).map( (provider1) => provider1Render(provider1, props) )
break;
case 'provider2':
JSON.parse(obj[key]).map( (provider2) => provider2Render(provider2, props) )
break;
case 'provider3':
...
break;
}
}
И, наконец, это функция providernRender (все выполняют одну и ту же задачу, даже если с разными рендерами):
export const provider2Render = ( provider2, props ) => {
const { attributes: {offers} } = props;
const p = provider2
const id = provider2.someVal
const html = <div className="prod">
<figure className="prod-image">
<small>Provider2</small>
</figure>
<div className="prod-content">
<strong>{ p.ItemInfo.Title }</strong>
<div className="prod-meta" id={id}>
<ButtonAdd offerid={id} props={props} clicked={clicked(offers, 'provider2', id)} />
</div>
</div>
</div>
localStorage.removeItem('provider2');
return html
}
Когда я выполняю эти действия, модальное тело пусто, но если я добавляю console.log внутри provider2Render, он запускается. Итак, проблема в том, что функции работают (или, по крайней мере, приложение вводит их при необходимости), но ничего не возвращается как html.