Итак, у меня есть компонент реакции для главного меню.
Список активных маршрутизаторов <Link/>
, которые указывают на разные страницы.Каждая ссылка проверяет window.location.path
, чтобы выяснить, является ли она активной страницей, чтобы активный элемент меню мог отображаться по-разному.
import React, { Component } from "react";
import { Link } from "react-router-dom";
import { connect } from "react-redux";
import List from "@material-ui/core/List";
class MainMenu extends Component {
render() {
return (
<List>
<Link to="/products" className={window.location.pathname === "/products" ? "active" : null }>Products</Link>
<Link to="/sales" className={window.location.pathname === "/sales" ? "active" : null }>Sales</Link>
</List>
)
}
}
Это на самом деле работало нормально, однако теперь я хочу подключить этот компонент менюв моем хранилище избыточности, чтобы я мог отобразить некоторые данные из хранилища внутри меню, как только я добавляю функцию connect
, меню разрывается так, что при смене страниц «активный» класс не применяется.т.е. компонент не обновляется даже though window.location.pathname
изменилось.
Я не включил свой код магазина, потому что я тестировал его с помощью фиктивных редукторов, которые ничего не делают, а также я даже еще нигде не использовал данные в компоненте.
export default connect(state => ({ foo: state.bar }))(MainMenu);
Я до сих пор не уверен, связана ли эта проблема с connect или если connect только что выделил проблему с использованием window.location.pathname
и реагирует, не знает, когда обновлять.
Любая помощь очень ценится!