@tanasov49

Как вывести значения ключа массива разными блоками на страницу?

Борюсь с проблемой в моем коде.
Суть следующая есть блок меню, на нем распложены кнопки подменю, надо сделать так, чтобы данные подменю выводились на каждом элементе li.
У меня проблема все значения subtitle водятся одним тегом li, а надо чтобы были разными. уже сломал голову. не знаю как решить задачу помогите!
Сам код
Массив с данными, в ключе subtitle находятся кнопки подменю
const [menuText, setTextMenu] = useState([
        {title: 'Каталог', 
        subtitle: ['Привет', 'Мир']},
        {title: 'Индивидуальная мебель'},
        {title: 'Контакты'},
        {title: 'О компании'},
        {title: '+38 (099)-638-45-37'}
    ])

а вот сам код в котором у меня не выводятся разными блоками
export default function HeaderMenuLinks(props) {
  return (
    <React.Fragment>
    {props.menuText.map((menu, key, index) => (
        <li className='header-menu__link' key={key}>
            <p>{menu.title}</p>
            <ul  className='link-menu'>
                <li className='link-menu__subtitle'>{menu.subtitle}{text[index]}</li>
               </ul> 
        </li>
    ))}
    </React.Fragment>
  )
}


т.е. значения subtitle выводятся одним блоком li ПриветМир
Не получается пройтись именно map по длине subtitle
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
TMProject
@TMProject
Frontend developer React/Redux
export default function HeaderMenuLinks(props) {
  return (
    <React.Fragment>
    {props.menuText.map((menu, key) => (
        const subTitle = menu.subtitle || false
        <li className='header-menu__link' key={key}>
            <p>{menu.title}</p>
            { subTitle && 
            <ul  className='link-menu'>
                {subTitle.map((sm, skey) => (
                <li className='link-menu__subtitle' key={skey}>{sm}</li>
                ))}
            </ul> 
          }
        </li>
    ))}
    </React.Fragment>
  )
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы