Я пытаюсь создать для себя веб-сайт, и когда вы нажимаете на изображение, страница прокручивается вниз до другого элемента в другом разделе.
Структура моего кода теперь такова, что у меня есть Класс приложения, и в этом классе я создаю два других компонента, назовите их A и B.
class App extends Component{
render () {
return (<A/>
<B/>)
}
Изображение, которое нажимает пользователь, находится в компоненте A, а элемент, который я хочу прокрутить, находится в B. I ' Мы пытались сделать это с помощью функции element.scrollIntoView
, создав такую ссылку:
class App extends Component{
constructor(props){
super(props);
this.divToFocus = React.createRef();
}
handleOnClick = () =>{
this.divToFocus.scrollIntoView({behavior: 'smooth'}
}
render () {
return (
<div>
<A click={this.handleOnClick}/>
<B name={this.divToFocus} />
</div>)}
и в A, используя handleOnClick
для атрибута img onClick
(обязательно установите "pointer-events": "all"
для стиля), а затем создал div со ссылкой this.divToFocus
в B, но получил ошибку типа, говорящую, что this.divToFocus.scrollIntoView
не является функцией.
Я также попытался использовать react-scroll
, выполнив что-то вроде этого:
class A extends Component{
render (){
return (
<Element name={"name"}>
Hello world!
</Element>
)}
}
class B extends Component{
render (){
return (
<Link activeClass="active" to="name" spy={true} smooth={true} offset={50} duration={500}>
<img src={arrow} />
</Link>
)}
}
но тогда ничего не происходило, когда я нажимал на изображение. Мы будем благодарны за любые советы о том, как это сделать!