Nik*_*nov 5 html javascript reactjs
我有两个嵌套在App Component上的CarouselComponent和BannerComponent组件。我想在CarouselComponent中获取BannerComponent中的元素以进行滚动功能。
代码在这里;
-App.js
....
<App>
<BannerComponent />
<CarouselComponent />
</App>
....
Run Code Online (Sandbox Code Playgroud)
--- BannerComponent.js
...
return(
<div className="banner-div" id="banner-div">
</div>
);
...
Run Code Online (Sandbox Code Playgroud)
--- CarouselComponent.js
...
scrollTo() {
document.getElementById("banner-div") // This doesn't work
}
...
return(
<a onClick={this.scrollTo}></a>
);
Run Code Online (Sandbox Code Playgroud)
我想知道在所有情况下如何在React js中获取元素。
React ref 会在这里工作。
class SomeComp extends React.Component{
constructor(){
this.carRef = React.createRef(); //create ref
}
render(){
return(
<div>
<App>
<BannerComponent carRef={this.carRef}/> //pass ref in Banner Component to attach it to required DOM.
<CarouselComponent carRef={this.carRef}/> //pass ref to CarouselComponent to use it
</App>
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
横幅组件
class BannerComponent extends React.Component{
render(){
return(
<div className="banner-div" id="banner-div" ref={this.props.carRef}>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
轮播组件
class CarouselComponent extends React.Component{
scrollTo() {
this.props.carRef.current.scrollTo(50)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |