내 React 구성 요소에서 고유 한 ID를 가진 자체 DIV 요소에 각각 <div id="abc-123">
이라는 항목 목록을 표시합니다.특정 항목으로 스크롤
나는 또한 모든 것을 좋게 보이게하기 위해 react-perfect-scrollbar
을 사용하고 있습니다.
내 감속기에 변수를 보관하고 activeElementId
으로 변경하고 activeElementId
값이 변경되면 자동으로 해당 항목을 화면에 스크롤하고 싶습니다.
activeElementId
을 설정하는 것은 쉬운 부분이지만 그 요소로 스크롤하는 방법을 잘 모르며 일부 포인터를 고맙게 생각합니다.
이것은 ListComponent
을 포함하는 상위 구성 요소입니다. 내 ListComponent
class MyComponent extends Component {
constructor(props) {
super(props);
}
render() {
return(
<div>
{this.props.items.length > 0
?
<PerfectScrollBar>
<ListComponent items={this.props.items} />
</PerfectScrollBar>
: null}
</div>
);
}
}
는 표현 적 구성 요소입니다
const ListComponent = ({ items }) => {
return(
<ul className="pretty-list">
{items.map(item => <ItemComponents item={item} />)}
</ul>
);
}
export default ListComponent;
그리고 ItemComponent
뿐만 아니라 표현 적 구성 요소입니다
const ItemComponent = ({ Item }) => {
return(
<li>
<div id={item.id}>
{item.someProperty}
</div>
</li>
);
}
export default ItemComponent;
정말 ListComponent
유지의 아이디어 추천하고 ItemComponent
별도 프리젠 테이션 구성 요소로 코드를 간단하고 쉽게 관리 할 수 있습니다. 그것은 자동 스크롤 로직을 구현하기 어렵게 만들지 모르겠지만.
딱! 고맙습니다. 빠른 후속 작업 : jQuery를 사용하지 않고 스크롤에 애니메이션을 추가하고 싶습니다. 'setScrollTop'의 문서를 확인했지만 애니메이션에 대한 참조가 없습니다. 이것에 올바른 방향으로 나를 가르쳐 주시겠습니까? 다시 한번 감사드립니다. – Sam
@Sam 그것이 효과가있어 기뻐하지만 나는 그 주제에 대한 경험/지식이 없다. 조금 더 연구를 해보고 새로운 질문을 열어도 아무 것도 나오지 않으면 좋은 생각 일 것입니다. – bennygenel