Я использую coreui в своем реактивном проекте и, если быть более точным, c - appSideBarNav, который я использую для представления папок. Проблема в том, что папки могут быть вложенными, и когда папка (пусть это будет A) имеет дочерний элемент (B), папка A становится выпадающим. Когда вы нажимаете на A-папку, вы должны быть перенаправлены на url / A, но вместо этого элемент Dropdown переключается, и перенаправление не происходит. Другими словами - вас могут перенаправлять только папки, у которых нет детей. Примечательно, что все папки имеют правильный атрибут url. Кроме того, я передаю функцию onClick для каждой папки, чтобы увидеть, была ли она запущена после нажатия на нее в списке, и после щелчка только папки без дочерних элементов вызывают функцию onClick.
Пример кода ниже представляет рекурсивную функцию Заполнения appSideBarNav папками:
const addFoldersToNav = (folders, sourceURL = '/mail/') => {
return (folders.map(item => {
console.log('creating and adding folder')
const folder = {
name: (item.Type == 10) ? item.Name : i18next.t(item.Name.toLowerCase() + '_folder'),
url: sourceURL + item.Name,
icon: folderTypes.get('' + item.Type),
// onClick: (console.log('wow')),
attributes: {
onClick: event => {
console.log('clicked')
event.nativeEvent.stopImmediatePropagation()
window.location = "#" + sourceURL + item.Name;
localStorage.setItem('Path', sourceURL + ':folderId/:selectedId?')
},
onToggle: () => { console.log('toggled') },
},
wrapper: {
element: <input onClick={console.log('wrapped')} />
},
notSeenAmount: 0,
id: inc++,
children: (item.SubFolders) ? addFoldersToNav(item.SubFolders['@Collection'], sourceURL + item.Name + '/') : null,
}
return folder
}))
}