Как переопределить nav-dropdown @ coreui / реагировать - PullRequest
1 голос
/ 05 февраля 2020

Я использую 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
            }))
        }
...