Есть ли возможность создать хеш-ссылку в React JS?Ссылка по id in React JS
А имеют, например что-то вроде этого:
<div className="nav">
<Link to="">Home</Link>
<Link to="#services">Services</Link>
<Link to="#contact">Contact</Link>
</div>
И если пользователь нажимает на услуги, которые я хочу, что он идет в разделе страницы с идентификатором services
.
Любые советы?
ОБНОВЛЕНИЕ
App коды компонента (основной компонент):
<div>
<Header route={this.props.location.pathname}
language={this.props.language.labels}
authenticated={this.props.authenticated}
signoutAction={this.props.actions}
/>
{React.cloneElement(this.props.children, {
currentLanguage: this.props.language.labels,
authenticated: this.props.authenticated
})}
<Footer currentLanguage={this.props.language.labels}/>
</div>
компонент заголовок:
<ul className="noPadding">
<li style={{paddingTop: 20}}> <a href="">Home </a></li>
<li style={{paddingTop: 20}}> <a href="">Kenmerken </a></li>
<li style={{paddingTop: 20}}> <a href="">Voordelen </a></li>
<li style={{paddingTop: 20}}> <Link to="" onClick={this.handleScroll.bind(this, "whoAreWe")}>Wie zijn wij?</Link></li>
<li style={{paddingTop: 20}}> <a href="#contact">Contact </a></li>
<li style={{paddingTop: 20}}> <MainButton text="Aanmelden"/></li>
</ul>
Главный компонент:
render(){
const languageHome = this.props.currentLanguage.default.homePage;
let loginBox = !this.props.authenticated ? (<div id="cta-1" className="onlyOnDesktop"><Login currentLanguage={languageHome}/></div>) : "";
return (
<div className="homeMain">
<section className="marginOnXs" style={{width: '100%', padding: 0}}>
<MainSlider />
</section>
<section className="why-us" style={{paddingTop: 0, paddingBottom: 0}}>
<Info currentLanguage={languageHome}/>
</section>
<div className="clearfix"></div>
<section className="benefits noPadding">
<Benefits currentLanguage={languageHome} />
<div className="clearfix"></div>
</section>
<section ref="whoAreWe" id="whoAreWe" className="whoAreWe noPadding">
<WhoAreWe currentLanguage={languageHome} />
<div className="clearfix"></div>
</section>
</div>
);
}
Все разделы находятся в главном компоненте и Home компонент оказывает в
{React.cloneElement(this.props.children, {
currentLanguage: this.props.language.labels,
authenticated: this.props.authenticated
})}
Ручка функции прокрутки:
handleScroll(id, event){
event.preventDefault();
const item = ReactDOM.findDOMNode(this.refs[id]);
window.scrollTo(item.offsetTop);
}
То, что я вижу в консоли:
Проблема заключается в том, что код нав и те секции не находятся в одном файле. И тогда 'item' пуст. – Boky
Я не знаю, правильно ли я понимаю вашу проблему ... Меню и div, которые связаны в меню, отображаются на одной странице? – marcint339
Я обновил свой вопрос. – Boky