Я пытаюсь найти способ управления выбранной вкладкой с помощью 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.