Как выбрать вкладку UI Material с URL - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь найти способ управления выбранной вкладкой с помощью URL.До сих пор я могу установить выбранную вкладку при загрузке компонента, выполнив это в конструкторе:

    let selectedTab = 0;
    props.layout.map((element, index) => {
        if (element.name === props.startingTab) {
            selectedTab = index;
        }
    })

    this.state = {
        value: selectedTab
    }

Макет - это массив объектов, переданных в компонент вкладки, который включает в себя, какие компоненты отображать, чтобы отобразить ихin и их отображаемые имена.

Я также могу анализировать URL-адрес при нажатии на другую вкладку и корректно обновлять его, выполняя следующие действия:

    const url = this.props.match.url;
    const layout = this.props.layout;
    this.props.history.push(`${url.substr(0, url.lastIndexOf('/') +1)}${layout[value].name}`)

Но ни один из них не подходит никому для пользователянажатие назад и разбор URL кажется довольно неуклюжим.

Есть ли лучший способ сделать это?Сейчас я использую React Router v4 и просто штатное состояние React.

1 Ответ

0 голосов
/ 12 октября 2018

React Router не поддерживает BrowserRouter + HashRouter в том же приложении.Это будет работать, если вы установите каждую вкладку на отдельный путь, используя href prop.

...