React native null不是Android上的对象(评估' _scrollView.scrollTo')
componentDidMount() {
let scrollValue = 0;
setInterval(function(){
scrollValue = scrollValue + width; // width = screen width
_scrollView.scrollTo({x: scrollValue})
}, 3000);
}
<ScrollView
ref={(scrollView) => { _scrollView = scrollView; }}
horizontal={true} pagingEnabled={true} >
{items}
</ScrollView>
它的工作是自动幻灯片内容,但是当我从另一个页面返回时,它的返回错误null不是一个对象(评估&#39; _scrollView.scrollTo&#39;)I不知道那个
答案 0 :(得分:0)
您应该在this
上保存参考。即便如此,如果引用位于其他范围内,则在安装多个ScrollView时会遇到问题。
componentDidMount() {
let scrollValue = 0;
setInterval(() => {
scrollValue = scrollValue + width;
this._scrollView.scrollTo({x: scrollValue})
}, 3000);
}
render() {
// ...
return (
<ScrollView
ref={scrollView => this._scrollView = scrollView}
horizontal={true}
pagingEnabled={true}
>
{items}
</ScrollView>
)
}
请注意,当您在组件中创建自定义方法时,this
必须由您自己绑定
scrollListToLeft = () => {
this._scrollView.scrollTo({x: 0})
}
答案 1 :(得分:0)
您必须检查_scrollView是否不为空
if(this._scrollView != null){
scrollValue = scrollValue + width;
this._scrollView.scrollTo({x: scrollValue})
}
render() {
// ...
return (
<ScrollView
ref={scrollView => this._scrollView = scrollView}
horizontal={true}
pagingEnabled={true}
>
{items}
</ScrollView>
)
}
我希望这样可以解决我的问题。