我有一個App頂級組件,它有一個菜單和路線。在菜單上單擊我更新活動項目以反映所選路線。這是代碼:const [activeItem, setActiveItem] = useState(window.location.pathname === '/' ? 'home' : getRouteName());...const handleItemClick = (e, { name }) => { setActiveItem(name); window.document.title = 'MyApp - ' + name.charAt(0).toUpperCase() + name.slice(1);};const MenuItem = ({name, title, link}) => ( <Menu.Item as={Link} to={link} name={name} title={title} active={activeItem === name} onClick={handleItemClick} > {title} </Menu.Item>);...<Menu /> //iterate over items<Switch> <Route exact path="/" component={Home} /> ...</Switch>它運行良好,直到其中一個組件重定向到另一個組件。因此,如果我轉到/comp1(無論是通過單擊還是直接瀏覽),菜單項activeItem將顯示為活動狀態。但是,如果我轉到并添加一個按鈕以導航到(使用組件或 ),則活動項目將保留在.comp1comp1comp2comp1<Link>history.push('/comp1')comp2任何想法如何觸發App組件中的更改以反映路由更改,最好不需要將功能放入handleActiveItem上下文中,或將其傳遞給所有其他組件?
如何使用 react-dom-router 處理活動路由/路由更改
aluckdog
2023-03-18 16:45:20