나는 react-virtualized
라이브러리의 구성 요소 InfiniteLoader
및 List
을 사용하여 무한한 목록을 가지고 있습니다. 사용자가 생성 한 이벤트에 응답하기 위해 특정 행으로 스크롤하고 싶습니다. 나는 scroll_to_week
메소드를 호출반응 가상화로 무한 목록에서 색인으로 스크롤하는 방법
Uncaught TypeError: this.list.scrollToRow is not a function
:
class Weeks extends Component {
constructor(props) {
super(props)
this.state = {
week_count: 10,
}
auto_bind(this)
}
is_week_loaded(week) {
return week < this.state.week_count
}
load_more_weeks() {
this.setState({week_count: this.state.week_count + 1})
}
scroll_to_week(week) {
if (this.state.week_count <= week) {
this.setState({week_count: week + 1})
}
this.list.scrollToRow(week)
}
render_week({key, index, style}) {
return (
<div key={key} style={style}>
<Week week={index}/>
</div>
)
}
render() {
return (
<AutoSizer>
{({height, width}) => (
<InfiniteLoader
isRowLoaded={this.is_week_loaded}
loadMoreRows={this.load_more_weeks}
rowCount={this.state.week_count + 1}
>
{({onRowsRendered, registerChild}) => (
<List
height={height}
width={width}
onRowsRendered={onRowsRendered}
ref={(list) => {
this.list = list
registerChild(list)
}}
rowCount={this.state.week_count}
rowHeight={row_height}
rowRenderer={this.render_week}
/>
)}
</InfiniteLoader>
)}
</AutoSizer>
)
}
}
는 그러나, 나는 다음과 같은 오류가 발생합니다 :
이 내 코드입니다.
문서에서 https://github.com/bvaughn/react-virtualized/blob/master/docs/reverseList.md은 행 인덱스로 스크롤하는 올바른 방법이라고 생각했습니다.
도움 주셔서 감사합니다.
그것이 this.refs.list.scrollToRow 안()? – Chase
@Chase, ref prop에 문자열을 제공하면 실제로 올바른 방법이지만 여기서는 함수를 제공하고 있습니다. 이 함수는'componentDidMount'가 호출되기 전에 호출됩니다. 나는 이것을'this.list'를 정의하는데 사용했다. –