Я новичок в реакции, у меня хорошее понимание HTML и CSS / SASS, поэтому до сих пор у меня не возникало проблем.
Я хочу выделить кнопка на панели навигации в зависимости от того, на какой странице пользователь находится в данный момент.
Я пытался добавить простые onClick к кнопкам которая будет вызывать функцию, передавая строку, сообщающую, что « home » был только что нажат или, например, « contact ».
Я добавил alert () для функции, чтобы я мог видеть, что кнопки были нажаты и вызывается метод;
Однако, когда страница загружается, он вызывает метод каждой кнопки и выдает мне предупреждение для каждой кнопки, затем продолжает загружаться, как обычно, и, нажимая кнопки, кажется, будто я никогда не добавлял onClick.
Кто-нибудь может мне сказать, где я ошибаюсь с этой простой функцией? Последние 5 часов я потянул за волосы.
Спасибо!
NavBar. js:
function NavBar() {
const isActive = "home";
return (
<nav className="landing-page__nav-bar nav-bar">
<ul className="nav-bar__list">
<Link to ='/home'><li><a data-page="home" className="home-link">
<button href="landingpage" className={` ${isActive === "home" ? 'btn__nav-bar-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("home")}>Home</button>
</a></li>
</Link>
<Link to ='/portfolio'><li><a data-page="portfolio" className="portfolio-link">
<button className={` ${isActive === "portfolio" ? 'btn__nav-bar-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("portfolio")}>Portfolio</button>
</a></li>
</Link>
<Link to ='/artwork'><li><a data-page="doodles" className="doodles-link">
<button className={` ${isActive === "artwork" ? 'btn__nav-bar-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("artwork")}>Artwork</button>
</a></li></Link>
<Link to ='/photography'><li><a data-page="photography" className="photography-link">
<button className={` ${isActive === "photography" ? 'btn__nav-bar-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("photography")}>Photography</button>
</a></li></Link>
<Link to ='/cv'><li><a data-page="cv" className="cv-link">
<button className={` ${isActive === "cv" ? 'btn__nav-bar-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("cv")}>CV</button
></a></li></Link>
<Link to ='/about'><li><a data-page="about" className="about-link">
<button className={` ${isActive === "about" ? 'btn__nav-basr-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("about")}>About</button>
</a></li></Link>
<Link to ='/contact'><li><a data-page="contact" className="contact-link">
<button className={` ${isActive === "contact" ? 'btn__nav-bar-btn active-link' : 'btn__nav-bar-btn'}`} onClick={buttonWasClicked("contact")}>Contact</button>
</a></li></Link>
</ul>
</nav>
);
}
export default NavBar;
ButtonClick. js (метод обновить текущую страницу):
import NavBar from './Nav-bar';
function ChangeActiveButton(selectedButton) {
alert(selectedButton)
NavBar.isActive = toString(selectedButton);
}
export default ChangeActiveButton;