对FlatList的React-Native引用不起作用

时间:2018-03-13 10:17:48

标签: react-native react-native-flatlist

我尝试在我的本机应用程序中始终滚动到我的平面列表的底部,但遗憾的是我没有得到对该平面列表的引用。

this.flatList.scrollToEnd();

在渲染函数中,我尝试调用方法scrollToEnd()

ref = {"flatlist"}

我在

的平面列表中尝试过它
ref = "flatlist"

SELECT (amount(when outcome is false) - amount(when outcome is true)) AS income 
FROM transaction WHERE (the condition I was unable to write);

但是他们都没有工作我总是得到错误: TypeError:无法读取未定义的属性'scrollToEnd'。

您可以在此处找到完整的代码:this answer

4 个答案:

答案 0 :(得分:1)

您必须使用引用,因此它将是this.refs.flatlist.scrollToEnd()

您还可以添加动画可选参数:

  this.refs.flatlist.scrollToEnd({animated: true });

对于声明,我个人这样做:

ref='flatlist'

然后你必须用这个函数调用方法(不是在渲染中,因为它将在第一个完整的渲染之后首先声明,因为它将获得引用):

React Native ListView scrollToEnd it doesn't work

答案 1 :(得分:1)

您需要从引用访问FlatList以调用方法scrollToEnd()

this.refs.flatlist.scrollToEnd({animated: true });

将您的代码this.flatList.scrollToEnd();更改为this.refs.flatlist.scrollToEnd();

它适合你。

答案 2 :(得分:0)

就像Clad Clad告诉我的那样,我在渲染方法中使用了它,当然flatlist元素目前还不存在。 谢谢! :-)

答案 3 :(得分:0)

您应将ref={(ref) => { this.listRef = ref; }}道具授予“平面列表”。