答案 0 :(得分:11)
有一种解决方法,将其包装在setTimeout
中,如此:
componentDidMount() {
setTimeout(() => {
this.refs.dateList.scrollToEnd();
}, 50);
}
答案 1 :(得分:8)
试试这个:
<ListView
ref={ ( ref ) => this.scrollView = ref }
onContentSizeChange={ () => {
this.scrollView.scrollToEnd( { animated: false } )
} } >
</ListView>
答案 2 :(得分:0)
渲染需要时间,因此滚动到结束之前的setTimeout()将起作用。但是,您可以使用onLayout()方法。
export default MyComponent extends React.Component {
constructor(props) {
super(props)
this.scrollToBottom = this.scrollToBottom.bind(this)
}
scrollToBottom() {
this.refs.myView.scrollToEnd()
}
render() {
return {
<ListView
onLayout={this.scrollToBottom}
ref='myView'
...
/>
}
}
注意:ListView现在已弃用。
答案 3 :(得分:0)
这对我有用。
<Content ref={c => (this.contentComponent = c)}>
....Any code
</Content >
这使您可以像这样使用scrollToPosition(0)函数
this.contentComponent._root.scrollToPosition(0);