JQueryを使用しないで、React JS のクリックイベントでスクロールしてアニメーションを作成する方法はありますか?React JS内でスクロール
私はナビゲーションがあり、クリックしたユーザーに応じてページセクションに移動したいと考えています。そして私はいくつかのアニメーションでそれをしたいです。
問題は、ナビゲーションとセクションが同じファイルにないことです。
私が主成分で、このようなものがあります。この中で
render() {
return (
<div>
<Header currentLanguage={this.props.language.labels}/>
{React.cloneElement(this.props.children, {
currentLanguage: this.props.language.labels
})}
<Footer currentLanguage={this.props.language.labels}/>
</div>
);
}
は、子どもたちが、私がナビゲートしたい部分である小道具。それらは:ヘッダ内
return (
<div className="homeMain">
<section ref="home" className="marginOnXs">
<MainSlider />
</section>
<section id="performance" ref="performance">
<Performance currentLanguage={languageHome}/>
</section>
<section id="benefits" ref="benefits">
<Benefits currentLanguage={languageHome} />
</section>
<section ref="contact" id="contact">
<ContactForm currentLanguage={languageHome}/>
</section>
</div>
);
私はこのようなものがあります:
<ul className="noPadding">
<li> <Link to="" onClick={this.handleScroll.bind(this, "home")}>Home </Link></li>
<li> <Link to="" onClick={this.handleScroll.bind(this, "contact")}>Contact?</Link></li>
</ul>
をハンドルスクロールに私が何かしようとした:
handleScroll(id, event){
event.preventDefault();
let test = ReactDom.findDOMNode(this.refs[id]);
let scrollTop = event.target.body.scrollTop,
itemTranslate = Math.min(0, scrollTop/3 - 60);
window.scrollTo(0, itemTranslate);
}
をしかし、それは動作しません。 this.refs[id]
は未定義です。ヘッダーの連絡先リンクをクリックすると、関数内のパラメーターIDはcontact
ですが、他のコンポーネントにあるため、this.refs["contact"]
が見つかりません。
アドバイスはありますか?
参考エド・コンポーネントへの答えがまだ実装されていますか?または、それはアンマウントされており、あなたはそれを参照しようとしていますか? – FurkanO